3

我知道这是已知主题,解决方案之一是将调用更改为同步。我仍然不清楚是否有任何其他方法可以异步执行并获取完整函数中的数据?示例函数在成功函数中创建了一个新的资产对象,我想在完整函数中获取对它的引用。

        function getPresentation(item) {
        $.ajax({
            type: "GET",
            url: item.Url,
            success: function (data) {
                assets.push(new asset(item.Type, item.Url, data));
            },
            complete: function () {
                /// How to get here the reference for the newly created asset object?
                /// how to alert(asset)?
            },
            error: function (req, status, error) {
                alert('error');
            }
        });

    }
4

1 回答 1

6

您可以简单地使用在事件中jQXhr获得的对象。complete完整事件的实际签名是complete(jqXHR, textStatus) 这样的

complete:function(jqXHR,status)
{
    if(status == 'success' || status=='notmodified')
    {
        var asset = new asset(item.Type, item.Url, $.parseJSON(jqXHR.responseText))
    }
}
于 2012-04-13T22:49:39.250 回答