Node.js API在多个.map函数中的承诺

Node.js API在多个.map函数中的承诺,node.js,Node.js,我正试图用一些JIRA API数据在Node.JS中构建一个表 我的问题是,我需要遍历多个.map函数,在这些函数中,我需要进行多个API调用,但承诺不会等到这些API调用完成后再将数据发送到前端 现在我有一些类似于: await Promise.all(epics.map(async (epic) =>{ return Promise.all(sprintsTable.map((sprints, key) => { return new Promise((r

我正试图用一些JIRA API数据在Node.JS中构建一个表

我的问题是,我需要遍历多个.map函数,在这些函数中,我需要进行多个API调用,但承诺不会等到这些API调用完成后再将数据发送到前端

现在我有一些类似于:

await Promise.all(epics.map(async (epic) =>{
    return Promise.all(sprintsTable.map((sprints, key) => {
        return new Promise((resolve,reject) =>{
            jira.epic.getIssuesForEpic({
                boardId: board_id,
                epicId: epic.id,
                jql:  'sprint='+sprints.id
            }, function (error, issues){
                var task = {
                    title: 'TASK',
                    data: issues,
                };
                resolve(task);

            });
        });

    }));
})).then((response) => {

});

现在,by server.js在实际执行api调用之前发送一个200响应,这样就不会等待所有的.map和api调用执行。

哪里的数据发送到前端太早了?还不清楚什么在等什么?您确实意识到您正在并行调用所有的
jira.epic.getIssuesForEpic)
调用,对吗?这不会对它们进行排序。它将它们全部发送出去,然后等待它们全部完成。我还建议您从第一个
.map()
回调中删除
async
,因为它不是必需的。同样奇怪的是,您在顶级
Promise.all()上同时使用
wait
.then()
。通常,您会使用其中一个。而且,您还需要对
jira.epic.getIssuesForEpic()调用进行错误处理。您当前正在忽略回调的
error
参数。我们需要查看实际将200响应发送到前端的周围代码。这可能就是问题所在。