我正在尝试创建一个循环,每次迭代都会向Asana的API发出请求,并且返回值会被推送到数组中。
所以例如
for(thing of totalThings){
getAProject(some projectID)
.then(function(getAProject's Response){
someArray.push(getAProject's Response
})
.catch();
}
我想在此之后使用someArray进行循环完成,但我不知道应该在哪里放置return语句。
答案 0 :(得分:1)
目标是逐页地从API迭代一组结果(例如任务)吗?你在使用Asana JS客户端吗?如果是这样,请参阅库的Collections文档,其中介绍了执行此操作的各种方法。
否则,您是否正在做一些与此不同的事情,比如可能尝试并行获取有关一堆项目的信息?请注意,承诺代码是异步,因此,如果您希望在代码完成后的某个时刻使用someArray
,则需要“等待”所有要解决的承诺。
假设getAProject
本身返回一个承诺,你可能会有:
var Promise = require('bluebird');
var responses = [];
for (...) {
responses.push(getAProject(id));
}
Promise.all(responses).then(function(responses) {
// Use the responses here
});