console.log(1)
console.log(2)
var 프로미스 = new Promise(function (resolve, reject) {
1번 for(let i = 0; i< 1000000; i++){
console.log(i)
}
resolve()
---------------------
2번 setTimeout(()=>{ resolve() } , 2000 )
});
프로미스
.then(function (구멍) {
console.log('성공했어요')
})
.catch(function () {
console.log('실패했어요');
})
console.log(3)
console.log(4)
----------------
프로미스 안의 1번인 경우
콘솔에 찍히는 것이
1->2-> 프로미스 안 for문의 console(i) ->3->4 -> 성공했어요
프로미스 안의 2번인 경우
콘솔에 찍히는 것이
1->2-> 3->4-> 성공했어요
이렇게 나옵니다.
당연히 2번에서는 setTimeout때문에 브라우저에서 치워버리니까 3번과 4번이 먼저찍히는 것이라고 이해 했고
Q. 센세에게 배운 인간의 언어 프로미스의 콜백함수는 동기적 처리가 맞고
then이나 catch안의 것은 브라우저가 잠깐 제쳐두고(비동기)
순서대로 콘솔 3,4 (동기적)처리 한 후 실행하는
어떻게 보면 setTimeout,ajax와 같이 잠깐 제쳐두고 처리하는 비동기적 처리라고
생각하면 될까요?
---------------------------