如何在NodeJS和MySQL中对多查询及.map()内查询使用Async Await
功能实现代码
async function getMergedQueryData() { // 第一步:执行第一条查询,提取前5个ID const firstQueryRes = await firstQueryFunc() const targetIdList = firstQueryRes.slice(0, 5).map(item => item.id) // 第二步:遍历ID执行内部查询,组装结果数组 const finalResult = await Promise.all( targetIdList.map(async (currentId) => { // 传入ID执行对应内部查询 const innerData = await innerQueryFunc(currentId) // 按业务需求组装对应对象 return { id: currentId, queryDetail: innerData } }) ) return finalResult } // 调用示例 // getMergedQueryData().then(res => console.log(res))
替换说明
- 代码中
firstQueryFunc是你业务场景里的第一条查询异步方法,替换为实际的接口请求/数据库查询方法即可 - 代码中
innerQueryFunc是接收ID参数的内部查询异步方法,替换为实际业务对应的查询逻辑即可 - 如果你需要串行执行内部查询而非并行执行,不要使用
Promise.all+map的组合,改用普通for循环配合await执行即可
内容的提问来源于stack exchange,提问作者Ankit
相关产品推荐
相关产品推荐

