如何按顺序 运行 这段代码并在节点 js 中得到结果

How to run this code in sequential way and get the result in node js

这个结果总是空的,因为它甚至在异步调用完成之前就返回了

function(myList) {
    let result = []
    
    myList.forEach(async function(element)) {
        //api call
        result.push(status)
    }

    return result
}

您不能将 async await 与 forEach 循环一起使用。将 map 与承诺感知的 Promise.allfor of 循环一起使用。例如:

const myList = ['abc', 'def'];

for (const foo of myList) {
    const result = await someResultfromApi;
    result.push(element);
}

return result;

数组方法不接受异步函数,因此,在这种特殊情况下,您应该使用基本循环

function (myList) {
  let result = [];
  for (let element: myList) {
    //api call with the await
    result.push(status);
  }
  return result;
}

或者你可以使用reduce,如果你想使用数组原生函数,它看起来像这样

function (myList) {
  return myList.reduce(
    (prev, element) => {
      return prev.then(result => {
        return http.get(/*some thing with the element*/).then(res => {
          result.push(res);
          return result;
        })
      });
    },
    Pormise.resolve([]));
}