EventEmitter vs facebook的调度员

时间:2015-01-28 16:25:45

标签: javascript node.js reactjs reactjs-flux eventemitter

我正在使用与Flux架构的反应 我在网上看到,为了定义商店,我必须做类似的事情:

var AppDispatcher = require('../dispatcher/dispatcher'), //facebook's dispatcher
    EventEmitter = require('events').EventEmitter,
    assign = require('object-assign');

var MyStore = assign({}, EventEmitter.prototype, {
   .....

据我了解,EventEmitter和facebook的调度员有很多共同之处。例如,两者都可以发出(或发送)一个事件 我的问题是为什么我需要EventEmitter和调度程序?这不是多余的吗? 创建一个包含EventEmitter所需行为的调度程序是不是更好?

1 个答案:

答案 0 :(得分:4)

Dispatcher在EventEmitter中没有提供或预期的功能,最值得注意的是waitFor,它允许商店确保另一个商店在响应行为之前已经更新。

模式方面,Dispatcher也是一个单例,而EventEmitter是一个可以对象分配到多个商店的API。

当然,您可以创建自己的混合类来实现这两个目的。 Facebook Flux调度程序是一个参考实现:)