만약 비동기 함수가 예상한 값 대신에 Promise { <pending> }을 반환한다면, 이는 해당 프로미스가 아직 처리되지 않았음을 의미합니다. 이러한 상황은 주로 비동기 작업을 제대로 처리하지 않았을 때 발생하는데
비동기 함수가 보류 중인 프로미스를 반환하는 일반적인 이유는 다음과 같습니다
1. await 키워드의 누락한 경우
async 함수를 사용할 때 프로미스와 함께 await 키워드를 사용하여 프로미스가 처리될 때까지 기다려야 합니다. await 없이 함수를 호출하면 즉시 보류 중인 프로미스가 반환됩니다.
async function myAsyncFunction() {
const result = await someAsyncOperation();
return result;
}
2. 프로미스를 반환하지 않은 경우
비동기 함수에서 프로미스를 반환하지 않으면 작업이 완료될 때까지를 알 수 없으므로 보류 중인 프로미스가 반환됩니다.
async function myAsyncFunction() {
someAsyncOperation(); // 프로미스 반환 X
}
이러한 문제들을 해결하고 프로미스를 제대로 처리하면 비동기 함수가 원하는 값 대신 보류 중인 프로미스를 반환하는 문제를 해결할 수 있습니다
참고
'JS' 카테고리의 다른 글
[JavaScript] elem.scrollIntoView() - 특정 요소 위치로 화면 스크롤 이동하기 (0) | 2024.04.30 |
---|---|
this와 this를 지정하는 방식 call, apply, bind에 대해 알아보자 (0) | 2024.04.20 |
substr와 substring의 차이 (0) | 2023.12.08 |
++a와 a++의 차이 | for의 로직 | for과 while의 차이 | Reference란 (0) | 2023.11.18 |
Regex (0) | 2023.08.25 |