node.js for 循环里面有多个异步方法,如何让所有异步方法结束后,执行后面的命令

在 for 循环里面,通过 mongoose 异步获取数据,如何让所有异步方法结束后,执行后面命令。

伪代码如下:

function getData (list) {
    let result = []
    
    list.forEach((item) => {
        if (item.type === 1) {
            //异步任务
            result.push(x)
        } elseif (item.type === 2) {
            //异步任务
            result.push(y)
        } else {
            //异步任务
            result.push(z)
        }
    })
    
    return result
}

function main () {
    // 若干代码
    let result = getData (list)
}

执行后 result 数据一致是空,主要是异步任务还没执行完导致,这种问题如果解决?

阅读 4k
2 个回答

async/await 了解一下

async function main () {
    let result = await getData (list); // getData方法中的异步部分也用async/await的写法修改一下
}

1、async/await, es7新增的方法
2、promise.all
3、async模块的series方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题