gpt4 book ai didi

javascript - 在对象内完成 ajax 调用后触发 Javascript 回调

转载 作者:行者123 更新时间:2023-11-28 09:46:42 25 4
gpt4 key购买 nike

我试图在通过 AJAX 调用创建 Javascript 对象后触发一个操作。我的对象看起来像这样:

function API(uid,accessToken){      
$.ajax("path/to/file", {
type: "POST",
data: { user: uid, auth: accessToken },
dataType: "json",
success: function(jsonData) {
arrayname = jsonData[values]
}
});
}

我尝试使用 JQuery 的 $.when 函数在对象设置完成后执行回调(即用 ajax 响应填充数组),如下所示:

        $.when( API = new API(uid, accessToken) ).then(function() {
...success function...
});

...但是 $.when 函数在 arrayname 值仍未定义的情况下触发。从函数的 Angular 来看,即使尚未设置对象值,也会解析延迟对象。此后,我尝试了多种方法来根据整个 ajax 调用的完成和变量的设置来延迟 API 对象,但我有点坚持最好的方法。

任何指示将不胜感激!谢谢。

最佳答案

您可以在创建对象时传递回调函数,如下所示:

function API(uid,accessToken, callback){      
$.ajax("path/to/file", {
type: "POST",
data: { user: uid, auth: accessToken },
dataType: "json",
success: function(jsonData) {
arrayname = jsonData[values]
callback(jsonData[values])
}
});
}

然后像这样实例化对象

var api = new API(uid, accessToken, function(array) {
// success function
});

关于javascript - 在对象内完成 ajax 调用后触发 Javascript 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11705817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com