JavaScript에서 Promise의 상태

Promise는 세 가지 상태 중 하나에 있을 수 있습니다. 생성 시 Promise는 대기 중(pending) 상태에 있으며, 이후 이행됨(fulfilled) 상태가 되어 결과를 반환하거나, 거부됨(rejected) 상태가 되어 실패 이유를 반환할 수 있습니다. 다음 코드를 실행하여 한 상태에서 다른 상태로의 전환을 확인할 수 있습니다:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    let isError = false; // true 또는 false로 설정하세요
    
    if (!isError) {
      resolve([1, 2, 3, 4, 5]);
    } else {
      reject('error in promise');
    }
  }, 3000);
});

setInterval(function() {
  console.log(promise); // 매초 Promise를 콘솔에 출력합니다
}, 1000);

fulfilled 및 rejected 상태는 변경 불가능합니다: Promise가 이러한 상태 중 하나로 전환되면 다른 상태로 다시 전환될 수 없습니다. 예제를 통해 살펴보겠습니다. 다음 코드에서 reject 호출이 먼저 발생하므로 resolve 호출은 무시됩니다:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(() => reject(new Error('error')), 1000);
  setTimeout(() => resolve('ignored'), 2000);
});
Задание 1

일정 시간 후 성공적으로 이행되는 Promise를 만드세요. 콘솔에 출력하고 초기 상태와 완료된 상태를 조사하세요.

Задание 2

일정 시간 후 실패로 이행되는 Promise를 만드세요. 콘솔에 출력하고 초기 상태와 완료된 상태를 조사하세요.