Wait는 비동기 함수 내부의 예약된 단어 오류입니다.
다음 구문에서 문제를 파악하는데 어려움을 겪고 있습니다.
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);
}
};
다음과 같은 오류가 계속 발생합니다.
wait는 예약어이다
하지만 비동기 기능에서는 합법적이지 않나요?
디스패치 비트는 리액트 트렁크라이브러리로부터 송신됩니다.
사용하기 위해서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()
약속을 지킬지 말지 기대하고 있습니다.
솔루션
를 사용합니다.await
사용 중인 범위 내에서 직접async
상단 스코프를 제거합니다.async
용장성이 있기 때문에.
올바른 쓰기 방법:
const sendVerificationEmail = () =>
async (dispatch) => {
await Auth.sendEmailVerification();
// some code..
};
정교
에러가 발생한 것은,await
키워드를 지정하지 않고async
와의 직접 범위 내에서await
, 2개의 기능이 있습니다.하나는 다른 하나의 내부로,async
안쪽이 아니라 윗부분이 중요하죠
잘못된 방법:
const sendVerificationEmail = async () =>
// notice that an async before the (dispatch) is missing
(dispatch) => {
await Auth.sendEmailVerification();
// some code..
};
여기서 오류가 생성됩니다(Chrome에서 사용 가능한 최신 오류).
Uncaught SyntaxError: await is only valid in async functions and the top level bodies of modules
언급
Async Functions
비동기 함수는 async 키워드로 선언된 함수로, 그 안에서 wait 키워드를 사용할 수 있습니다.async 키워드 및 wait 키워드를 사용하면 비동기 약속 기반의 동작을 보다 깨끗한 스타일로 기술할 수 있으므로 약속 체인을 명시적으로 설정할 필요가 없습니다.
언급URL : https://stackoverflow.com/questions/42299594/await-is-a-reserved-word-error-inside-async-function
'programing' 카테고리의 다른 글
wordpress의 관리 사이드바에서 게시물을 제거하는 방법 (0) | 2023.03.21 |
---|---|
제약 조건의 이름을 모를 때 Oracle에서 "not null" 제약 조건을 삭제하려면 어떻게 해야 합니까? (0) | 2023.03.21 |
반응 성분에서 특정 유형의 아이만 허용 (0) | 2023.03.21 |
변경에 대한 AngularJS $watch 루트 범위 변수 (0) | 2023.03.21 |
Jquery asp.net 버튼클릭 이벤트 via ajax (0) | 2023.03.21 |