node.js - 这个快速应用程序中的回调来自哪里?
问题描述
在一些 freecodecamp 之后,我开始为一些后端做来自 MDN( https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/Displaying_data/Home_page 2)的 Express js 教程。
我一直在理解 async.parallel 中的回调来自哪里以及代表什么。
如果我删除回调,网站将不会加载,所以它一定有一些重要的意义,但不幸的是我没有胶水。是否调用 function(err, results) { res.render('index', […] }) 以使结果可用于数据?
var Book = require(’…/models/book’);
var async = require(‘async’);
exports.index = function(req, res) {
async.parallel({
book_count: function(callback) {
Book.countDocuments({}, callback);
},
[...]
[...]
function(err, results) {
res.render('index', {
title: 'Local Library Home',
error: err, data: results
});
});
};
解决方案
回调是在异步请求完成时调用的通用函数。
在这个特定的实例中,回调被用作从异步请求中获取数据以填充页面上的书籍数量的方法。这些是必需的,因为这些查询是非阻塞的,这意味着 Javascript 将继续执行其他周围的代码,直到调用回调。如果您想了解更多关于它们一般如何工作的详细信息,请查看@dnp1204 之前提到的此处。我希望这回答了你的问题。
推荐阅读
- reactjs - React Function 组件使用局部变量设置状态变量 V/s
- flutter - Flutter 实现自定义 BottomSheet
- android - onPerformSync 的捕获状态结束他的工作
- amazon-web-services - AWS Sagemaker 监控错误:编码不匹配
- javascript - react - 拒绝应用样式,因为它的 MIME 类型('text/html')不是受支持的样式表 MIME 类型
- laravel - 在 Laravel 的 Vue 组件上将数据渲染到模态时出现问题
- java - 在 LIberty 21.0.0.6 的应用程序 [ABC_WSv2.1] 中获取由 servlet [JAX-RS Servlet] 创建的未捕获的 init() 异常
- php - 迁移 - 无法在控制台 Yii2 中实例化组件或类“db”
- java - 运行时组件丢失且已知更正不起作用
- django - 如何在 django celery 配置中更改“传输”网址