let result = []; //存放查询结果
model.WithdrawModel.find({status:'processing'}, (err, doc) => {
if (err) {
console.log(err);
res.json({ code: -1, msg: '查询失败'});
return;
} else {
doc.map((item) => {
model.UserModel.findOne({phone:item.phone},'name IDcard bank bankCard bank_area bank_name', (err, bankInfo) => {
if (err) {
console.log(err);
} else {
let obj = {};
Object.assign(obj, JSON.parse(JSON.stringify(item)), JSON.parse(JSON.stringify(bankInfo)));
result.push(obj);
console.log(result);
}
})
});
res.json({ code: 0, msg: '查询成功', result: result});
return;
}
});
Menggelung melalui pertanyaan, hasil di atas secara langsung mengembalikan nilai nol Bagaimana saya boleh memastikan semua pertanyaan dalaman dalam doc.map diselesaikan sebelum mengeluarkan nilai hasil?
Tanya dan jawab soalan anda sendiri, dan dapatkan bimbingan daripada orang lain.
janji.semuanya dilaksanakan seperti berikut:
---------------------------------------------------------------- Supplement---------- ----------------------------------------
Idea untuk mengira masih boleh dicapai, hanya gunakan modul acara:
Memandangkan Promise ialah panggilan tak segerak, gunakan
return
,会在还没真正获取到数据之后就返回,所以需要Promise内添加一个计数器count,在所有的Promise下,加一个循环,当所有的doc都循环到了(count == doc.length
) selepas semua pertanyaan untuk mengeluarkan pulangan.