反应调度员WAITFOR

Fra*_*ard 10 reactjs-flux

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

我想做什么我基本的,等待商店填写之前从另一家商店打电话.1.在第一个商店中注册令牌

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

});
Run Code Online (Sandbox Code Playgroud)

2.在另一个商店中写下等待

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;
});
Run Code Online (Sandbox Code Playgroud)

不幸的是我的getall()方法返回一个空对象(getAll()编写得很好).所以似乎waitFor调度程序功能不起作用.

基本上我知道这是因为第一个商店仍然从服务器接收答案,但我认为waitFor会等待它被取出我不明白.

任何线索?谢谢!

编辑:我解雇了第一个商店获取像tha.我不明白的是,一旦我的骨干集合被提取,我就会调度负载(我发送成功后承诺......)

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

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

Fra*_*ran 9

似乎问题是从服务器异步获取.waitFor不应该这样工作.一旦从服务器收到数据,您将不得不引入另一个触发的操作.

看看这个答案:https://stackoverflow.com/a/27797444/1717588

  • 事实上,"等待"令人困惑.它应该被称为"CheckThisStore"或"GetLastStoreResult",因为事实上它并没有"等待"任何东西 (5认同)
  • 喝水的耶稣以一种方式命名API是一个绝妙的主意,这种方式表明它与实际完全不同的东西...... (2认同)