gpt4 book ai didi

javascript - jquery when/then 用于递归 ajax 调用

转载 作者:行者123 更新时间:2023-12-02 17:37:55 25 4
gpt4 key购买 nike

function getFriends(url) {
return FB.api(url, function(response) {
if (response && !response.error) {
if (response.paging && response.paging.next) {
$.each(response.data, function() {
friends.push(this);
});
return getFriends(response.paging.next);
} else {
console.error(friends);
}
} else {
console.error("facebook friends couldn't been retrieved ");
}
});
}

$.when(getFriends("/me/friends")).then(
function() {
console.log('getFriends finished');
});

我想确保 fb 调用在 then() block 执行时完成,但没有机会。有没有办法实现这个?

谢谢

最佳答案

Facebook JS SDK 没有实现 jQuery 风格的 Promise 对象/$.Deferred,但您可以轻松地自己创建一个实例,例如:

function getFriends(url) {
var dfd = $.Deferred();
FB.api(url, function(response) {
if (response && !response.error) {
if (response.paging && response.paging.next) {
$.each(response.data, function() {
friends.push(this);
});
return getFriends(response.paging.next);
} else {
console.log(friends);
}
dfd.resolve();
} else {
console.error("facebook friends couldn't been retrieved ");
dfd.reject();
}
});
return dfd;
}

getFriends("/me/friends").done(
function() {
console.log('getFriends finished');
}
);

关于javascript - jquery when/then 用于递归 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22461435/

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