Promise는 주로 서버에서 받아온 데이터를 화면에 표시할 때 사용합니다. 일반적으로 웹 어플리케이션을 구현할 때 서버에서 데이터를 요청하고 받아오기 위해 아래와 같은 API를 사용합니다.
fetch('url 도메인/진솔/진솔바보', {method: 'GET'});
위 API가 실행되면 서버에 데이터를 보내달라는 요청을 보냅니다. 그러나 여기서 데이터를 받아오기도 전에 마치 데이터를 받아온 것처럼 화면에 데이터를 표시하려고 하면 오류가 발생하거나 빈 화면이 나오게 됩니다. 이를 해결하기 위한 방법 중 하나가 Promise입니다.
Promise를 사용할 때엔 프로미스를 생성하고 종료될 때까지 3가지 상태를 갖습니다.
new Promise();
new Promise(function(resolve, reject) {
// ...
});
new Promise()
메서드를 호출하면 대기 상태가 됩니다. new Promise()
메서드를 호출할 때 콜백 함수를 선언할 수 있고, 콜백함수의 인자는 resolve
, reject
입니다.
new Promise(function(resolve, reject) {
resolve();
});
여기서 콜백함수의 인자인 resolve
를 실행하면 이행 상태가 됩니다.
function getData() {
return new Promise(function(resolve, reject) {
let data = 100;
resolve(data);
});
}
getData().then(function(resolvedData) {
console.log(resolvedData); // 100
});