2022년 3월 28일

Task Queue (매크로 큐, 마이크로 큐 )

Untitled

[그림에서 M] 매크로 태스크 큐 (Macro task queue)

[그림에서 m] 마이크로 태스크 큐 (Micro task queue)

setTimeout(()=>{
  console.log('3')
}, 3000);

setTimeout(()=>{
  console.log('2')
}, 2000);

setTimeout(()=>{
  console.log('1')
}, 1000);

Promise.resolve().then(() => {
  console.log('first');
})

출력 순서는 first → 1 → 2 → 3

let a = 2;

setTimeout(() => {
  a=5;
  console.log(a);
})

console.log(a);

출력 순서는 2 → 5

프로미스란, 실행은 바로 하되, 결괏값을 나중에 원할 때 쓸 수 있는 것

let a = 2;

// 🚨 프로미스 내부 파란 글씨는 동기 처리됨 🚨
const p = new Promise((resolve,reject) => {	
  console.log('1.');

	setTimeout(() => {
	  a=5;
	  console.log(a); // 5(3번째)
	});
});

console.log(a); // 2(2번째)

// 딴짓

p.then((result) => console.log(result)); // 5(4번째)

출력 순서는 1. → 2(2번째) → 5(3번째) → 5(4번째)

Untitled