在没有异步 nodejs 的情况下链接调用



在我拿起的代码库中,我们有这样的链:

funcA(a,b){
  funcB(a, funcC);
}
funcB(a,b,callback){
  callback(a, funcD); // calls funcC
}
funcC(a,b,callback){
  callback(a, funcE); // calls funcD
}

所以函数甚至不知道它们在调用什么作为回调..

不用说,按照这段代码阅读真的很难。

一定要这样吗?如何改进此代码?

谢谢!

事件发射器可以帮助您解决问题吗?

http://nodejs.org/api/events.html#events_emitter_on_event_listener

var emitter = require('events').EventEmitter;
function A(a,b) {
    // hard work
    emitter.emit('funcADone', a , b);
}
function B(a,b) {
    var c = a + b;
    emitter.emit('funcBDone', c);
}
function C(c) {
    console.log(c);
}
emitter.on('funcADone', B);
emitter.on('funcBDone', C);
A(1,2);

最新更新