← 질문 목록
#76깊이 0

Promise와 타이머 중 무엇이 먼저 실행되는가?

언어 · 런타임기초비동기

같은 턴에 예약됐다면 Promise 콜백이 보통 타이머보다 먼저 실행된다. 현재 태스크가 끝난 뒤 마이크로태스크 큐를 비우고 다음 타이머 태스크를 꺼내기 때문이다.

  1. 현재 태스크
  2. 그다음은 마이크로태스크입니다. Promise 콜백을 모두 처리한다

    마이크로태스크
  3. 그다음은 렌더링 기회입니다. 브라우저가 갱신할 수 있다

    렌더링 기회
  4. 그다음은 다음 태스크입니다. 타이머나 이벤트 하나를 처리한다

    다음 태스크

Promise.then과 queueMicrotask는 마이크로태스크다. setTimeout 콜백은 태스크다. await 뒤의 연속 실행도 마이크로태스크로 재개된다.

마이크로태스크가 계속 새 작업을 넣으면 렌더링과 타이머가 굶는다. 긴 동기 코드도 루프를 막는다. Node.js는 단계별 세부 순서가 브라우저와 다르다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

Promise와 타이머 중 무엇이 먼저 실행되는가?