我正在尝试使用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绑定到一个从未调用但另一个商店仍未等待的动作!奇怪的 !
似乎问题是从服务器异步获取.waitFor不应该这样工作.一旦从服务器收到数据,您将不得不引入另一个触发的操作.
看看这个答案:https://stackoverflow.com/a/27797444/1717588
| 归档时间: |
|
| 查看次数: |
8712 次 |
| 最近记录: |