我最近开始使用node.js。它引用了可以以三种方式使用events
,stream
,callback
的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);
}