10

我正在使用对 Flux 架构做出反应。
我在网上读到为了定义商店,我必须做这样的事情:

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

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

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

4

1 回答 1

5

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

就模式而言,Dispatcher 也是一个单例,而 EventEmitter 是一个 API,您可以将它对象分配到多个存储上。

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

于 2015-02-13T15:24:38.880 回答