Redux thunk: Versprechen von der versendeten Aktion zurückgeben

Ist es möglich, ein Versprechen / Signal vom Aktionsersteller zurückzugeben, das behoben wurde, wenn Redux Thunk eine bestimmte Aktion erfolgreich ausgelöst hat?

Betrachten Sie diesen Aktionsersteller:

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})
            });
    }
}

Ich möchte eine Funktion asynchron aufrufenin der Komponente nach dem Aufruf von doPost action creator, wenn Redux entweder POST_SUCCESS- oder POST_ERROR-Aktionen ausgelöst hat. Eine Lösung wäre, den Rückruf an den Aktionsersteller selbst weiterzuleiten, aber das würde den Code unübersichtlich und schwer zu erfassen und zu warten machen. Ich könnte auch den Redux-Status in der while-Schleife abfragen, aber das wäre ineffizient.

Idealerweise wäre die Lösung ein Versprechen, das gelöst / abgelehnt werden sollte, wenn bestimmte Aktionen (in diesem Fall POST_SUCCESS oder POST_ERROR) ausgelöst werden.

handlerFunction {
  doPost(data)
  closeWindow()
}

Das obige Beispiel sollte überarbeitet werden, damit closeWindow () nur aufgerufen wird, wenn doPost () erfolgreich ist.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage