【问题标题】: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
}

【问题讨论】:

    标签: javascript mongodb asynchronous mongoose callback


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-17
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 2022-12-19
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多