循环中存在异步的情况如何让其正常执行?
最近写后端遇到一个情况,循环查询数据库,并且还需要校验数据是否正确。如下我需要对文件进行一个校验,并且要查询数据库中是否有文件相关的信息代码如下
async function getData(files){
files.forEach(item=>{
let info = await getData(item)
if(info){
// ...获取到之后进行各种操作
}
})
}
起初我的想法是item前面加个async,虽然它没有报错,但确实没有暂停循环。它并不会去等待getData执行完。
最终解决方式是用for of循环来处理。代码如下:
async function getData(files){
for(const item of files){
let info = await getData(item)
if(info){
// ...获取到之后进行各种操作
}
}
}