链接没有异步nodejs的调用

时间:2015-01-08 15:18:38

标签: node.js callback

在我选择的代码库中,我们有

这样的链
funcA(a,b){

  funcB(a, funcC);
}

funcB(a,b,callback){

  callback(a, funcD); // calls funcC
}

funcC(a,b,callback){

  callback(a, funcE); // calls funcD
}

所以这些功能甚至不知道他们称之为回叫!

毋庸置疑,按照此代码阅读真的很难。

是否必须这样?如何改进此代码?

谢谢!

1 个答案:

答案 0 :(得分:2)

EventEmitter可以帮助您解决问题吗?

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);