【发布时间】:2020-10-17 01:03:43
【问题描述】:
我正在使用异步函数来尝试使用 Axios 将数据拉入数组。当我在下面的 forEach 中记录数据时,它会显示出来,但是当我在 forEach 之外记录它时,它会返回空白。我认为这是因为程序仍在运行,但我不确定如何在没有超时的情况下解决。
const user = async(IDs) => {
var output;
var URL;
var result = [];
IDs[0].forEach(async(id) => {
URL = "https://example-api.com/" + id;
output = await axios.get(URL)
.then(function(data){
result.push(data.data.text);
console.log(result) // Returns the data
});
})
console.log(result) // returns blank
}
【问题讨论】:
-
使用 for 代替 forEach
-
它根本不起作用,因为您在 foreach 循环中调用了一个异步函数。要使其正常工作,只需在您的
IDs[0].foreach行之前添加await,一切都会正常工作 -
存在多个错误,例如在 forEach 循环中使用
asycn。然后你使用.then()和await这也没有意义
标签: javascript node.js asynchronous async-await axios