[ES6+] Promises



프로미스를 시작하기 전에 자바스크립트의 비동기성과 동기성에 대해 생각해볼 필요가 있다

프로미스는 비동기 작업이 맞이할 미래의 완료 또는 실패와 그 결과값을 나타낸다

그래서 Promise를 만들때는 실행할 수 있는 function을 만들어야한다

그래서 예시를 보자

const croffle = new Promise((resolve, reject) => {});

console.log(croffle);
//Promise{<pending>}

pending이라고만 뜨고 완료되지 않은 상태로 나온다.

자바스크립트는 그대로 있고 완료될때까지 기다리고 있는거다.

그럼 어떻게 완료해줄 수 있을까?

resolve function을 실행하는것이다

const croffle = new Promise((resolve, reject) => {
  setTimeout(resolve, 3000, "i want!");
});

console.log(croffle);

setInterval(console.log,1000, croffle);

//pending
//pending
//pending
//resolved : "i want!"
//resolved : "i want!"
//resolved : "i want!"
//resolved : "i want!"
// ... 1초마다 영원히 일어날것

그래서…

Promise의 핵심은!

내가 아직 모르는 value와 함께 작업할 수 있도록 해준다는 것이다!

(지금 쓰면서도 정리안되는중..)

그러니까,

이 자바스크립트가 에러가 날지, 잘 실행될지는 모르겠지만 어쨌거나 실행이 끝나면 나한테 다시 알려줘,

라는 뜻이라고 생각하면 된다




노마드코더의 ‘ES6의 정석’을 듣고 정리 =)




© 2018. by sora

Powered by sora