Javascript Node.js中的异步循环
Javascript Node.js中的异步循环,javascript,node.js,for-loop,async-await,Javascript,Node.js,For Loop,Async Await,异步函数(文件名){ 试一试{ 让aPayload=''; 让aStream=fs.createReadStream(`./tmp/${fileName}`,'utf8'); 阿斯特拉姆 .on('数据',(块)=>{ aPayload+=块; }) .on('end',async()=>{ 让aJson=JSON.parse(aPayload); 等待(让我们一起来看看阿杰森){ console.log(a.id); 控制台日志(“勾选”); wait dbItems.findOne({id:
异步函数(文件名){
试一试{
让aPayload='';
让aStream=fs.createReadStream(`./tmp/${fileName}`,'utf8');
阿斯特拉姆
.on('数据',(块)=>{
aPayload+=块;
})
.on('end',async()=>{
让aJson=JSON.parse(aPayload);
等待(让我们一起来看看阿杰森){
console.log(a.id);
控制台日志(“勾选”);
wait dbItems.findOne({id:a.id},(err,result)=>{
log(“应该发生什么事了!”);
});
}
});
}捕获(e){
投掷e;
}
}
您不能同时使用等待和回调。
它应该是以下内容之一:
不能同时使用等待和回调。 它应该是以下内容之一:
“你不能同时使用等待和回调。”你真的做到了。现在我明白了为什么理解承诺、异步和等待是如此的“困难”。@FooBar3098实际上,没有硬性规定说不可能同时使用回调和承诺(异步/等待)。只是
findOne()
函数的API设计器没有想到这一点。他可能会想:“哦,你在给我回电话?你可能不想得到承诺。”。虽然公平地说,我决不允许两个人都这么做。这会让人困惑。我该执行哪一个?回拨电话?承诺的.then()
回调?二者都如果两者都是,那么我首先执行哪个,等等。很好的例子:Axios可以很好地与配合使用。然后,
但是MongoDB方法不能。不确定是哪一个或全部,但至少findOne。那么
是一个未定义的方法。“你不能同时使用wait和callbacks。”你确实做到了。现在我明白了为什么理解承诺、异步和等待是如此的“困难”。@FooBar3098实际上,没有硬性规定说不可能同时使用回调和承诺(异步/等待)。只是findOne()
函数的API设计器没有想到这一点。他可能会想:“哦,你在给我回电话?你可能不想得到承诺。”。虽然公平地说,我决不允许两个人都这么做。这会让人困惑。我该执行哪一个?回拨电话?承诺的.then()
回调?二者都如果两者都是,那么我首先执行哪个,等等。很好的例子:Axios可以很好地与配合使用。然后,
但是MongoDB方法不能。不确定哪一个或全部,但至少findOne。那么
是一个未定义的方法。
dbItems.findOne({id: a.id}, (err, result) => {
console.log("Something Should Happen!");
});
const result = await dbItems.findOne({id: a.id})
console.log("Something Should Happen!");