React 调度程序 WAITFOR

React dispatcher WAITFOR

我正在尝试使用 react.js 的 waitFor 函数,但似乎我做错了什么。

我想做的基本操作是等待一家商店装满,然后再从另一家商店调用它。 1.Register 第一个商店中的代币

RipplelinesStore.dispatcherIndex= Dispatcher.register(function(payload) {
    var action = payload.action;
    var result;

    switch(action.actionType) {

         case Constants.ActionTypes.ASK_RIPPLELINES:    
            registerAccount(action.result); 
            RipplelinesStore.emitChange(action.result);         
            break;
    }

});

2.Write他家等候

Dispatcher.register(function(payload) {
    var action = payload.action;
    var result;

    switch(action.actionType) {
        case Constants.ActionTypes.ASK_RIPPLEACCOUNTOVERVIEW:
            console.log("overviewstore",payload);
            Dispatcher.waitFor([
                RipplelinesStore.dispatcherIndex,
            ]);

            RippleaccountoverviewsStore.test= RipplelinesStore.getAll();
            console.log(RippleaccountoverviewsStore.test);

            break;
    }

    return true;
});

不幸的是,我的 getall() 方法 return 是一个空对象(getAll() 写得很好)。所以好像waitFor dispatcher函数没有起作用

基本上我知道那是因为第一家商店仍在从服务器接收答案,但我认为 waitFor 会等待它被提取我不明白。

有什么线索吗?谢谢!

编辑:我像 tha 一样启动了第一个商店获取。我不明白的是,一旦我的 backbone 集合已获取,我就会分派负载(我承诺成功分派...)

ripplelinescollection.createLinesList(toresolve.toJSON()).then(function() { 
            Dispatcher.handleViewAction({
                actionType: Constants.ActionTypes.ASK_RIPPLELINES,
                result: ripplelinescollection
            });
        }); 

我还尝试将 waitfor 绑定到一个从未调用过但另一个商店仍未等待的操作!奇怪!

似乎问题出在从服务器异步获取。 waitFor 不应该以这种方式工作。您将不得不引入另一个操作,该操作在从服务器接收到数据后立即触发。

看看这个答案: