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

事件和流在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);
}

10-05 20:54
查看更多