Redux-Thunk:并发请求

时间:2018-03-26 09:48:25

标签: redux redux-thunk

我有两个动作:

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),但我想这并不重要。

0 个答案:

没有答案