gpt4 book ai didi

javascript - 多个ajax回调

转载 作者:行者123 更新时间:2023-11-30 12:42:14 25 4
gpt4 key购买 nike

我需要进行一些 ajax 调用,只有在它们全部完成后才能继续。我看过 jQuery 的 $when().then() 但我似乎无法让它工作。

$.when(
getFriends()
).done(function( friends ){
console.log( friends );
});

getFriends 然后调用另一个方法发出 ajax 请求并返回数据,这就是我认为问题所在。

getFriends: function()
{
apiRequest( 'GET', 'friends', null,
function( data ){
return data;
},

function( error )
{
console.log( error );
}
);
}

apiRequest 方法只获取所有数据,添加一些必需的字段以发送到服务器,然后返回数据。这部分工作正常。这只是让 getFriends 在完成时让其他人知道的全部。

apiRequest: function( method, endpoint, data, success, error )
{
var endpoint = config.api_base_url + endpoint;
var ajax_options = {
type: method,
data: data,
success: success,
error: error
};

if( auth_token = getAuthToken() )
{
ajax_options.beforeSend = function( request )
{
request.setRequestHeader( 'X-Auth-Token', auth_token );
};
}

$.ajax( endpoint, ajax_options );
}

如有任何帮助或建议,我们将不胜感激。谢谢

最佳答案

您需要返回 $.ajax() 产生的 promise ,您cannot return from the success handler .然后从 getFriends 返回一个 promise :

getFriends: function() {
return apiRequest('GET', 'friends', null).fail(function(error) {
// ^^^^^^
console.log(error);
}); // modified by the fail handler
},
apiRequest: function(method, endpoint, data) {
var ajax_options = {
url: config.api_base_url + endpoint,
type: method,
data: data
};
var auth_token = getAuthToken();
// ^^^ missing var
if (auth_token)
ajax_options.beforeSend = function(request) {
request.setRequestHeader('X-Auth-Token', auth_token);
};

return $.ajax(ajax_options);
// ^^^^^^
}

关于javascript - 多个ajax回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24025747/

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