Estoy luchando por resolver el problema con la siguiente sintaxis:
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);
}
};
Sigo recibiendo un error que dice:
esperar es una palabra reservada
... pero ¿no es legal dentro de una función asincrónica?
El bit de envío proviene de la biblioteca react-thunk .
(dispatch) =>
, y eso no es asincrónico. ¿Por qué tienes lasendVerificationEmail
devolución de otra función en lugar de realizar alguna acción?async (dispatch) =>
que pueda publicar eso como respuesta, necesito devolverlo para obtener acceso al envíoRespuestas:
Para usarlo
await
, la función que lo encierra directamente debe ser asíncrona. De acuerdo con su comentario, agregarasync
a la función interna soluciona su problema, así que lo publicaré aquí:export const sendVerificationEmail = async () => 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); } };
Posiblemente, podría eliminar el
async
de la función externa porque no contiene ninguna operación asincrónica, pero eso dependería de si la persona quesendVerificationEmail
llama esperasendVerificationEmail
devolver una promesa o no.fuente