我有两个动作:
getChats(){
return (dispatch, getState) => {
const state = getState().chats;
if(state.isLoading || state.isRequested) {
console.log('CHATS_REQUESTING_BUSY');
return Promise.resolve();
}
console.log('CHATS_REQUESTING');
dispatch(chats_loading);
return fetch().then(response => {
console.log('CHATS_REQUESTED');
return dispatch(chats_loaded)
});
};
}
getChat(id){
return (dispatch, getState) => {
return dispatch(this.getChats)
.then(() => {
console.log('CHAT_REQUESTED');
let chat = selectChat(getState(), id); // selector
// some additional logic here
});
};
}
当这两个请求被称为并行时,让我假装有一种情况。 类似的东西:
store.dispatch(this.ChatsActions.getChats);
store.dispatch(this.ChatsActions.getChat(12345));
我得到了这个:
'CHATS_REQUESTING'
'CHATS_REQUESTING_BUSY'
'CHAT_REQUESTED'
'CHATS_REQUESTED'
在第二次通话中getChat
不等待getChats dispatch
。这是正确的行为还是我错过了什么?
更新
实际上我正在使用angularJS(ng-redux),但我想这并不重要。