EventEmitter vs facebook的调度员

Nao*_*aor 10 javascript node.js eventemitter reactjs reactjs-flux

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

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

var MyStore = assign({}, EventEmitter.prototype, {
   .....
Run Code Online (Sandbox Code Playgroud)

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

Jam*_*rce 5

Dispatcher 具有 EventEmitter 中未提供或预期的功能,最显着的是 waitFor,它允许存储确保在操作继续之前已更新另一个存储以响应操作。

在模式方面,Dispatcher 也是一个单例,而 EventEmitter 是一个 API,您可以将对象分配给多个存储。

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