javascript - 函数的使用(回调)
问题描述
我是猫鼬的新手,我试图了解传递“回调”时到底发生了什么。我知道 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
}
解决方案
调用callback
意味着您已完成该特定操作。
async.parallel
等待直到调用所有回调,然后调用最后一个函数并将结果传递给它,该结果从之前每个操作的回调中获得。
因此,在您的情况下,async
请同时调用您的两个操作。当 mongoose 通过调用回调查找作者来查找或抛出错误时req.body.authorid
,对于authors_books
. 为了确定所有并行函数何时完成,最后一个函数已使用err
和results
参数调用。您可以检查err
和results
了解操作是如何完成的。
注意:您将在最后一个函数的 results 参数中获得操作的结果。例如,您author
将从第一个操作中获得results.author
并且也results.authors_books
来自第二个操作。
推荐阅读
- ruby - Sass 不工作 & 无法在 macOS Catalina 上安装 ruby-sass
- java - 如何重置 int 值
- python - 为什么我的 QThreads 总是让 Maya 崩溃?
- python - 在 postgreSQL 中通过烧瓶创建数据库
- javascript - 将文本流从 NodeJS 传递到浏览器
- mysql - TIMESTAMPDIFF from particular timezone
- javascript - Highcharts:如何格式化 x 轴,以便表格中的实际日期/时间出现在每个 y 上
- javascript - Angular/Cordova:Android 设备上的 MIME 类型问题
- node.js - `fs.readFile` 是否等同于 `setTimeout(fs.readFileSync)`?
- hyperledger-fabric - 如何为结构 CA 使用加密配置文件