Javascript 函数的使用(回调)
我是mongoose的新手,我正试图了解在传递“回调”时到底发生了什么。我知道async.parallel正在调用两个返回查询结果的函数,但我不理解在这种情况下“回调”的用法Javascript 函数的使用(回调),javascript,mongodb,asynchronous,mongoose,callback,Javascript,Mongodb,Asynchronous,Mongoose,Callback,我是mongoose的新手,我正试图了解在传递“回调”时到底发生了什么。我知道async.parallel正在调用两个返回查询结果的函数,但我不理解在这种情况下“回调”的用法 async.parallel({ author: function(callback) { Author.findById(req.body.authorid).exec(callback) }, authors_books: function(callb
async.parallel({
author: function(callback) {
Author.findById(req.body.authorid).exec(callback)
},
authors_books: function(callback) {
Book.find({ 'author': req.body.authorid }).exec(callback)
},
}, function(err, results){
// some function
}
调用
callback
表示您已完成该特定操作
async.parallel
等待调用所有回调函数,然后调用最后一个函数,并将之前每个操作中回调函数得到的结果传递给它
因此,在您的情况下,async
同时调用这两个操作。当mongoose通过req.body.authorid
查找作者来查找或抛出错误时,调用回调,对于authors\u books
也是如此。为了确定何时完成所有并行函数,使用err
和results
参数调用了最后一个函数。您可以检查err
和results
以了解操作是如何完成的
注意:您将在最后一个函数的results参数中获得操作结果。例如,您将从结果中的第一个操作中获得作者
。作者
以及结果。作者
来自第二个操作