javascript - node.js 回调如何异步?

标签 javascript node.js

我最近开始使用 node.js。它引用了 node.js 异步行为可以通过三种方式使用 eventsstreamcallback

事件和流处理 emit,pipe 事件使其真正异步,但回调异步如何,因为它在函数返回之前执行除非使用 process.nextTick()

事件:

event.on('data',function(data){

});

回调:

function(data,cb){
 // do something with "data"
 cb();
 return;   
}

最佳答案

让我们仔细看看具有回调的函数:

function(data, cb) {
 // do something with "data"
 cb();
 return;
}

这里有 2 个大错误:

1) 当你有一个回调函数时,你没有理由使用 return 。 Return 仅在您具有立即发送响应的同步操作时使用(它们不必等待将来某个时间触发回调)。

2) 你不立即执行回调,没有任何意义。您要么不使用回调并使用 return 语句(当您实际上没有异步函数时),要么您在将来某个时候获得结果时执行回调。

更好的例子:

function (data, cb) {
  // you make an Ajax call and 
  // you don't know when the callback will be triggered
  makeAjaxCall(data, cb);
}

关于javascript - node.js 回调如何异步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10793929/

相关文章:

sql - 如何使用 Sequelize 获取模型的字段列表及其类型

javascript - 使用 Node JS 对 Google API 进行身份验证

java - 在 Angular4 中渲染缩略图

node.js - Nodejs、TypeScript、ts-node-dev 和顶级等待

javascript - Redactor 编辑器在上传时更改图像标签

javascript - Angular JS <a href> 路由回登录

javascript - 在expressjs上动态转译和服务React应用程序

javascript - 如何使用 jQuery 选择第一个父 DIV?

node.js - 快速提供静态文件: can't set headers after they are send

javascript - 我该如何处理 "summarizing"这样的对象数组?