gpt4 book ai didi

javascript - 在 javascript 中进行嵌套的 Promise 调用

转载 作者:行者123 更新时间:2023-12-03 07:53:58 25 4
gpt4 key购买 nike

我尝试使用yammer SDK https://c64.assets-yammer.com/assets/platform_js_sdk.js进行异步调用,如下面的代码。

javascript SDK 文档在这里 https://developer.yammer.com/docs/js-sdk

该代码当前的作用是返回包含 50 个用户个人资料的数组。用户总数是不可预测的。

我想要什么:当返回 array.length在之前的通话中是 equal to 50 ,即下一页可能有更多用户,请使用 index++ 再次调用到相同的 API URL。

重复此操作,直到没有更多用户可供提取。

但是如何制作呢?


yam.connect.loginButton('#yammer-login', function (resp) {
console.log(resp.authResponse);
var index = 1;
if (resp.authResponse) {
//trigger data process
yam.platform.request({
url: "users.json",<br/>
method: "GET",
data: {<br/>
"page": index
},
success: function (user) {
console.log("The request was successful.");
console.log(user.length);
},
error: function (user) {
console.log("There was an error with the request.");
}
});
}else{
console.log("error to get access_token");
}
});

最佳答案

只需创建一个 getUsers 函数和一个全局变量(在本例中,我通过 immediately-invoked function 来确定范围)来控制索引,您只需检查用户长度是否为 50,并且如果是这样 - 再次运行该函数:

(function() {
var index = 1;

var getUsers = function() {
yam.platform.request({
url: "users.json",
method: "GET",
data: {
"page": index
},
success: function (user) {
console.log("The request was successful.");
console.log(user.length);

if (user.length === 50) {
// There are additonal users - increment index and run the function again
index++;

getUsers();
}
},
error: function (user) {
console.log("There was an error with the request.");
}
});
};

yam.connect.loginButton('#yammer-login', function (resp) {
console.log(resp.authResponse);

if (resp.authResponse) {
//trigger data process
getUsers();
} else {
console.log("error to get access_token");
}
});
})();

关于javascript - 在 javascript 中进行嵌套的 Promise 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34877594/

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