Javascript 嵌套异步函数的Null返回值
这个函数如何返回null?是因为函数的可变范围还是执行时间Javascript 嵌套异步函数的Null返回值,javascript,node.js,mongodb-query,Javascript,Node.js,Mongodb Query,这个函数如何返回null?是因为函数的可变范围还是执行时间 async function getBook() { var book; await libray.findONe({ cat: 1 }, {}, async (err, res) => { await section.findONe({ secId: res.secI }, {}, (error, result) => { book = result;
async function getBook() {
var book;
await libray.findONe({ cat: 1 }, {}, async (err, res) => {
await section.findONe({ secId: res.secI }, {}, (error, result) => {
book = result;
});
});
book = result;
}
return book;
}
试试这个
async function getBook() {
const res = await libray.findOne({ cat: 1 });
const book = await section.findOne({ secId: res.secI });
return book;
}
试试这个
async function getBook() {
const res = await libray.findOne({ cat: 1 });
const book = await section.findOne({ secId: res.secI });
return book;
}
我认为问题在于,您是在异步函数完成之前从函数返回的。 所以解决这个问题的一个方便方法是从异步函数生成回调函数
很抱歉,我不是一个js人,所以我实际上无法发布代码,但我想你已经有了想法。我认为问题在于,你是在异步函数完成之前从函数返回的。 所以解决这个问题的一个方便方法是从异步函数生成回调函数
很抱歉,我不是一个js人,所以我不能发布代码,但我想你已经有了想法。在这里,混合回调和
wait
是永远不会成功的await
仅在等待承诺时执行有用的操作,并且当您向数据库函数传递回调时,它们不会返回承诺。请花一秒钟时间了解wait
真正做什么,以及如何使用它,以及如何在数据库中使用承诺。你不能在任何地方通过和等待
,期望它做一些有用的事情。在这里,混合回调和等待
是永远不会成功的await
仅在等待承诺时执行有用的操作,并且当您向数据库函数传递回调时,它们不会返回承诺。请花一秒钟时间了解wait
真正做什么,以及如何使用它,以及如何在数据库中使用承诺。你不能在任何地方等待它做一些有用的事情。这是正确的方法。这是正确的方法。