[javascript] Await는 비동기 함수 내부의 예약어 오류입니다.

다음 구문으로 문제를 파악하는 데 어려움을 겪고 있습니다.

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

다음과 같은 오류가 계속 발생합니다.

await는 예약어입니다.

…하지만 비동기 함수 내에서 합법적이지 않습니까?

디스패치 비트는 react-thunk 라이브러리에서 가져옵니다.



답변

를 사용하려면 await직접 둘러싸는 함수가 비동기 여야합니다. 귀하의 의견에 따르면 async내부 기능을 추가 하면 문제가 해결되므로 여기에 게시하겠습니다.

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

아마, 당신은을 제거 할 수 async는 비동기 작업을 포함하지 않기 때문에 외부 함수에서,하지만 그 호출자가 있는지 여부에 따라 달라 sendVerificationEmail기대하고 sendVerificationEmail약속을 반환하거나하지.


답변