gpt4 book ai didi

javascript - 循环调用 API - Angular js

转载 作者:行者123 更新时间:2023-12-01 02:42:37 24 4
gpt4 key购买 nike

我有一组必须在 for 循环内运行的 API

for(var i=0; i<array.length; i++ )
service.getfunction(array[i]).then(function(response) {
service.getfunction1(response).then(function(response) {
service.getfunction2(response).then(function(response) {
service.getfunction3(response).then(function(response) {
console.log(response);
});
});
});
});
)

只有在我从第一个循环的最后一个 getfunction3 API 获得结果后,才应开始第二个循环。我怎样才能做到这一点?

最佳答案

首先 - 您可以将您的 promise 链接起来,例如:

function doJob(i) {
return service.getfunction(array[i]).then(function(response) {
return service.getfunction1(response);
}).then(function(response) {
return service.getfunction2(response);
}).then(function(response) {
return service.getfunction3(response);
}).then(function(response) {
console.log(response);
});
}

此函数将返回 promise ,一旦所有此服务调用完成,该 promise 将得到解决。现在让我们使用它:

var p = Promise.resolve(true);
for(var i = 0; i < array.length; i++) {
(function(idx) { //We need to wrap it or we will pass incorrect i into doJob
p = p.then(function() {
return doJob(idx);
});
})(i);
}
p.then(function() {
console.log('Everything done');
});

关于javascript - 循环调用 API - Angular js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47452020/

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