最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何推动返回值到数组与多个异步等待在foreach循环调用

运维笔记admin9浏览0评论

如何推动返回值到数组与多个异步等待在foreach循环调用

如何推动返回值到数组与多个异步等待在foreach循环调用

我想使多个异步等待在foreach循环函数调用和按值返回到一个数组。但它返回一个承诺。我怎么可以存储在阵列中的实际返回的值?谢谢您的帮助。

let table1Assignments = [];
        await groupingTable1Id.forEach(table1Id => {(
             table1Assignments.push(assignmentsDAO.getAssignmentsOfTable(table1Id, date, time)))
        });

getAssignmentsOfTable看起来是这样的:

 async getAssignmentsOfTable(tableId, date = null) {
   let stmt =
      `SELECT * 
       FROM assignment a
       WHERE a.dining_table_id = $1` + (date?' AND a.date = $2':'');
    const params = date?[tableId, date]:[tableId];

    const result = await this.db.query(stmt, params);

    return result.rows.map(row => {
        return new Assignment(
          row.id,
          row.dining_table_id,
          row.guest_group_id,
          row.date,
          row.time
        );
    });
}
回答如下:

我会按照这种模式:

Promise.all([
  groupingTable1Id.map(table1Id => assignmentsDAO.getAssignmentsOfTable(table1Id, date, time))
]).then((table1Assignments) => {
  table1Assignments.forEach(assignment) { process(assignment) });
});

请参阅有关JavaScript(ES6)文档Promise.all here ...

发布评论

评论列表(0)

  1. 暂无评论