【发布时间】:2018-09-17 09:28:50
【问题描述】:
我有一个名为项目的项目列表,其中包含两个文件夹 ID。我想遍历项目列表,调用端点获取文件夹 1 中的任务,然后调用端点获取文件夹 2 中的任务,然后合并结果。我无法让这段代码按照我上面描述的顺序运行。我已经尝试过 Promises 和 Aysnc/Await,但我什么都做不了。这是我当前的代码:
function processAllTasks() {
var emptyPromise = Promise.resolve();
for(const Project of filteredProjects){
emptyPromise = emptyPromise.then(function() {
return getTasksForProjectFolderID(Project.FolderID1);
}).then(function(result) {
console.log(result);
array1 = result;
getTasksForProjectFolderID(Project.FolderID2).then(function(result2) {
console.log(result2);
array2 = result2;
})
});
}
}
其中 Array1 和 Array2 是我稍后要合并和处理的两个数组。它们是在全局范围内定义的。我的休息函数 getTasksForProjectFolderID 如下所示:
function getTasksForProjectFolderID(projectFolderID) {
return rp({
url: url + projectFolderID + '/tasks',
headers: headers
}).then(function(response) {
return response;
});
}
rp 是const rp = require('request-promise');
【问题讨论】:
-
您确定
getTasksForProjectFolderID()在一次通话中正常工作吗? -
@TaylorKrusen 是的,我在尝试循环之前单独尝试过
-
你当前的工作有什么问题?
-
@TaylorKrusen 是的,它包含一个包含两个 ID 的对象数组
-
@Weedoze 代码只是遍历循环并为每个循环记录“未定义”
标签: javascript node.js rest