【发布时间】:2020-04-25 21:50:31
【问题描述】:
我正在使用 Async/Await 或 Callback() 在 forEach 函数之后尝试 console.log()。但他们似乎都没有工作。这是我要执行的一组函数。
addAirports = async(airportsJson, callBack) => {
await airportsJson.forEach( async(airport) => {
let db_find = await airportsModel.find({iata_code: airport.iata_code});
if (db_find[0] == null) {
airportsModel.insertMany(airport, function(error, docs) {});
console.log(airport)
}
});
callBack()
};
airportsUpdated = () => {
console.log("All airports are updated")
}
addAirports(airportsInput, airportsUpdated);
我什至尝试过使用“.map”。如果有人能告诉我如何使用 Async/Await 或 Callback 但不使用超时来实现异步执行,那就太好了。
【问题讨论】:
-
forEach不等待它的回调。await airportsJson.forEach不会做你认为的事情。 -
我也试过“地图”
-
同样的事情。另一种选择是,例如成为
for (airport of airportsJson) { /*...*/ } -
那行得通,您能否将其发布为答案,因为没有其他类似的问题可以像您一样直接回答:)。
-
这能回答你的问题吗? Using async/await with a forEach loop
标签: javascript node.js asynchronous foreach