
await expression을 사용할 수 없는 경우는 다음과 같습니다.
1. 비동기 함수가 아닌 함수를 호출할 때: await expression은 비동기 함수의 결과를 기다리기 위해 사용되므로, 비동기 함수가 아닌 함수를 호출할 때 사용할 수 없습니다. 예를 들어, `console.log()` 함수는 비동기 함수이므로 await expression을 사용할 수 있지만, `Math.max()` 함수는 비동기 함수가 아니므로 await expression을 사용할 수 없습니다.
#hostingforum.kr
javascript
// 비동기 함수
async function 비동기함수() {
return 10;
}
// 비동기 함수가 아닌 함수
function 비동기함수가아님() {
return 10;
}
// await expression을 사용할 수 있습니다.
const 결과 = await 비동기함수();
console.log(결과); // 10
// await expression을 사용할 수 없습니다.
const 결과2 = await 비동기함수가아님();
console.log(결과2); // Error: await expression을 사용할 수 없습니다.
2. await expression이 이미 사용된 경우: await expression은 비동기 함수의 결과를 기다리기 위해 사용되므로, 이미 await expression이 사용된 경우를 다시 사용할 수 없습니다. 예를 들어, 다음과 같이 await expression을 사용한 후 다시 await expression을 사용할 수 없습니다.
#hostingforum.kr
javascript
async function 함수() {
const 결과 = await 비동기함수();
const 결과2 = await 비동기함수(); // Error: await expression이 이미 사용되었습니다.
return 결과2;
}
3. await expression이 비동기 함수의 결과를 기다리지 못하는 경우: await expression은 비동기 함수의 결과를 기다리기 위해 사용되므로, 비동기 함수의 결과를 기다리지 못하는 경우를 사용할 수 없습니다. 예를 들어, 다음과 같이 await expression을 사용한 후 비동기 함수의 결과를 기다리지 못하는 경우를 사용할 수 없습니다.
#hostingforum.kr
javascript
async function 함수() {
const 결과 = await 비동기함수();
setTimeout(() => {
console.log(결과); // Error: await expression이 비동기 함수의 결과를 기다리지 못했습니다.
}, 1000);
return 결과;
}
4. await expression이 비동기 함수의 결과를 기다리지만, 비동기 함수가 종료되지 않은 경우: await expression은 비동기 함수의 결과를 기다리기 위해 사용되므로, 비동기 함수가 종료되지 않은 경우를 사용할 수 없습니다. 예를 들어, 다음과 같이 await expression을 사용한 후 비동기 함수가 종료되지 않은 경우를 사용할 수 없습니다.
#hostingforum.kr
javascript
async function 함수() {
const 결과 = await 비동기함수();
비동기함수(); // 비동기 함수가 종료되지 않았습니다.
return 결과;
}
5. await expression이 비동기 함수의 결과를 기다리지만, 비동기 함수가 에러를 발생시키는 경우: await expression은 비동기 함수의 결과를 기다리기 위해 사용되므로, 비동기 함수가 에러를 발생시키는 경우를 사용할 수 없습니다. 예를 들어, 다음과 같이 await expression을 사용한 후 비동기 함수가 에러를 발생시키는 경우를 사용할 수 없습니다.
#hostingforum.kr
javascript
async function 함수() {
try {
const 결과 = await 비동기함수();
return 결과;
} catch (에러) {
console.error(에러); // Error: await expression이 비동기 함수의 결과를 기다리지 못했습니다.
}
}
위의 예제를 통해 await expression을 사용할 수 없는 경우를 확인할 수 있습니다.
2025-03-04 08:40