函数的使用(回调)

Posted

技术标签:

【中文标题】函数的使用(回调)【英文标题】:Use of function(callback) 【发布时间】:2018-12-29 20:03:45 【问题描述】:

我是 mongoose 的新手,我试图了解在传递“回调”时到底发生了什么。我知道 async.parallel 正在调用两个返回查询结果的函数,但我不明白在这种情况下使用“回调”。

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

【问题讨论】:

【参考方案1】:

调用callback 表示您已完成该特定操作。

async.parallel 等待直到调用所有回调,然后调用最后一个函数并将结果传递给它,该结果从之前的每个操作中的回调中获得。

因此,在您的情况下,async 同时调用您的两个操作。当猫鼬通过req.body.authorid 查找作者找到或抛出错误时调用回调,authors_books 相同。为了确定所有并行函数何时完成,最后一个函数已使用errresults 参数调用。您可以查看errresults 以了解这些操作是如何完成的。

注意:你会在最后一个函数的results参数中得到运算结果。例如,您将在 results.author 的第一个操作中获得 author,而 results.authors_books 将来自第二个操作。

【讨论】:

以上是关于函数的使用(回调)的主要内容,如果未能解决你的问题,请参考以下文章

怎么使用回调函数?

什么是回调函数?回调函数适合在什么情况下使用?

回调函数的使用

回调函数究竟有啥使用价值,有否例子,效率如何

Promise对象的resolve回调函数和reject回调函数使用

Delphi回调函数及其使用