Ich habe Probleme, das Problem mit der folgenden Syntax herauszufinden:
export const sendVerificationEmail = async () =>
(dispatch) => {
try {
dispatch({ type: EMAIL_FETCHING, payload: true });
await Auth.sendEmailVerification();
dispatch({ type: EMAIL_FETCHING, payload: false }))
} catch (error) {
dispatch({ type: EMAIL_FETCHING, payload: false });
throw new Error(error);
}
};
Ich bekomme immer wieder Fehler, wenn ich sage:
Warten ist ein reserviertes Wort
... aber ist es innerhalb einer asynchronen Funktion nicht legal?
Das Dispatch-Bit stammt aus der React-Thunk- Bibliothek.
(dispatch) =>
, und das ist nicht asynchron. Warum haben Sie diesendVerificationEmail
Möglichkeit, eine andere Funktion zurückzugeben, anstatt eine Aktion auszuführen?async (dispatch) =>
Sie das als Antwort posten könnten, ich muss es zurückgeben, um Zugang zum Versand zu erhaltenAntworten:
Um verwendet zu werden
await
, muss die Funktion, die sie direkt einschließt, asynchron sein. Laut Ihrem Kommentarasync
behebt das Hinzufügen zur inneren Funktion Ihr Problem. Deshalb werde ich das hier posten:Möglicherweise können Sie
async
die Funktion aus der äußeren Funktion entfernen, da sie keine asynchronen Operationen enthält. Dies hängt jedoch davon ab, ob der Aufrufer davonsendVerificationEmail
erwartetsendVerificationEmail
, ein Versprechen zurückzugeben oder nicht.quelle