Реагировать диспетчера инструкция waitfor
Я пытаюсь использовать функцию waitFor react.но, кажется, я делаю что-то не так.
что я хочу сделать I basic, дождитесь, пока магазин будет заполнен, прежде чем звонить из другого магазина. 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;
}
});
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;
});
к сожалению, мой метод getall () возвращает пустой объект (getAll () хорошо написан). Таким образом, кажется, что функция waitfor dispatcher не рабочий.
В основном я знаю, что это потому, что первый магазин все еще получает ответ от сервера, но я думал, что waitFor будет ждать его, чтобы получить, я не получаю его.
любой ключ ? Спасибо!
Edit: я увольняю первую выборку магазина, как tha. Чего я не понимаю, так это того, что я отправляю груз, как только моя коллекция позвоночника получила (я отправляю на успех с обещанием...)
ripplelinescollection.createLinesList(toresolve.toJSON()).then(function() {
Dispatcher.handleViewAction({
actionType: Constants.ActionTypes.ASK_RIPPLELINES,
result: ripplelinescollection
});
});
Я также попытался привязать waitfor к действие, которое никогда не вызывается, но другой магазин все еще не ждет ! Странно !
1 ответов
похоже, проблема заключается в асинхронной выборке с сервера. waitFor не должен работать таким образом. Вам придется ввести другое действие, которое запускается, как только данные были получены с сервера.
взгляните на этот ответ:https://stackoverflow.com/a/27797444/1717588