首页 > 解决方案 > 2 如何在 NodeJS 和 MySQL 中的 .map() 函数下对多个查询和查询使用 Async Await

问题描述

2 如何在 NodeJS 和 MySQL 中的 .map() 函数下对多个查询和查询使用 Async Await

注意:首先,我们将使用 Async 和 await 执行第一个查询,然后从第一个查询中获取 5 个 Id,然后使用第一个查询数组,我们将使用 .map() 函数并将 Id 一个一个传递到内部使用 async 和 await 查询并为每个循环创建对象并将这些对象保存到数组中。

请给我一些此功能的代码。

标签: mysqlnode.jsasync-awaitarray.prototype.map

解决方案


这是您描述中的伪代码,它演示了如何等待多个异步操作完成:

async function getRecords() {
  const recordIds = await execQuery() // get ids from db

  const promises = [];

  recordIds.map((e) => {
    promises.push(execQuery())
  });

  await Promise.all(promises);
}

根据您的描述,不清楚为什么需要单独的查询来检索对象。你不能在以下查询中使用(in operator)[https://www.w3schools.com/mysql/mysql_in.asp]:

SELECT * FROM table WHERE id IN(1, 4, 8)


推荐阅读