Promise 는 실행은 바로 하되, 결괏값을 나중에 원할 때 쓸 수 있는 것
let a = 2;
const p = new Promise((resolve, reject) => {
// 동기
console.log('제일 먼저');
setTimeout(() => {
a = 5;
console.log(a);
resolve(a);
}, 0);
});
// 다른 코드들
console.log('딴짓');
p.then((res) => {
console.log('res', res);
});
제일 먼저
딴짓
5
res 5
이렇게 출력된다.
new Promise() 의 콜백은 동기이다.