예제: 값을 반환하는 resolve
const result = await new Promise((resolve) => {
setTimeout(() => {
resolve("3초 후 완료"); // resolve에 값을 전달
}, 3000);
});
console.log(result); // "3초 후 완료"
동작:
setTimeout
으로 3초 대기.- 3초 후
resolve("3초 후 완료")
호출. Promise
가 완료되면서 값"3초 후 완료"
가 반환되고,result
변수에 저장됨.
예제: 비동기 계산
const sum = await new Promise((resolve) => {
const a = 5;
const b = 10;
setTimeout(() => {
resolve(a + b); // 계산 결과 전달
}, 2000);
});
console.log(`계산 결과: ${sum}`); // "계산 결과: 15"
동작:
setTimeout
으로 2초 대기.- 2초 후
resolve(a + b)
호출 →Promise
완료. - 계산 결과
15
가 반환되어sum
에 저장됨.
예제: 복잡한 데이터 반환
const user = await new Promise((resolve) => {
setTimeout(() => {
resolve({
name: "홍길동",
age: 25,
location: "서울",
}); // 객체 전달
}, 1000);
});
console.log(user.name); // "홍길동"
console.log(user.age); // 25
동작:
- 1초 후
resolve()
로 객체를 반환. - 반환된 객체를
user
변수에 저장. - 객체의 속성에 접근하여 출력.
예제: reject
와 함께 사용
try {
const result = await new Promise((resolve, reject) => {
const success = false; // 성공 여부
setTimeout(() => {
if (success) {
resolve("작업 성공"); // 성공 시 메시지 전달
} else {
reject("작업 실패"); // 실패 시 에러 전달
}
}, 2000);
});
console.log(result); // 성공 시 실행
} catch (error) {
console.error(error); // 실패 시 실행
}
동작:
success
값에 따라resolve
또는reject
호출.- 성공 →
result
에"작업 성공"
저장. - 실패 →
catch
블록에서"작업 실패"
처리.
요약
resolve
에 값을 전달하면 Promise
가 완료될 때 그 값이 반환됩니다. 이를 통해 계산 결과, 객체, 문자열 등 다양한 데이터를 await
로 처리할 수 있습니다.
Sns
https://automatethem.tistory.com/409
https://blog.naver.com/automatethem/223667537404
댓글 없음:
댓글 쓰기