Redux Thunk: вернуть обещание от отправленного действия
Можно ли вернуть обещание / сигнал от создателя действия, разрешенный, когда Redux thunk успешно отправил определенное действие?
Рассмотрим создателя этого действия:
function doPost(data) {
return (dispatch) => {
dispatch({type: POST_LOADING});
Source.doPost() // async http operation
.then(response => {
dispatch({type: POST_SUCCESS, payload: response})
})
.catch(errorMessage => {
dispatch({type: POST_ERROR, payload: errorMessage})
});
}
}
Я хочу вызвать некоторую функцию асинхроннов компоненте после звонкаdoPost создатель действий, когда Redux отправил действия POST_SUCCESS или POST_ERROR. Одним из решений было бы передать обратный вызов самому создателю действия, но это сделало бы код запутанным и трудным для понимания и поддержки. Я мог бы также опрашивать состояние Redux в цикле while, но это было бы неэффективно.
В идеале решение - это обещание, которое должно разрешаться / отклоняться при отправке определенных действий (в данном случае POST_SUCCESS или POST_ERROR).
handlerFunction {
doPost(data)
closeWindow()
}
Приведенный выше пример должен быть реорганизован, поэтому closeWindow () вызывается только тогда, когда doPost () успешен.