• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

마이크로 태스크로 들어가는 콜백함끼리는 순서대로 실행되는게 맞나요?

21.07.16 21:55 작성 조회수 155

0

강의에서 마이크로 태스크로 들어가는 콜백함수끼리는 순서대로 실행된다고 하셨는데 실행 했을때, 순서 상관없이nextTick 우선적으로 실행됩니다.

Promise.resolve().then(() => console.log("promise"));
process.nextTick(() => console.log("nextTick"));
//nextTick
//promise

, promise then안쪽에서 console.log 바로 실행했을때는 순서 상관없이 promise 우선적으로 실행됩니다 ㅠㅠ

Promise.resolve().then(console.log("promise"));
process.nextTick(() => console.log("nextTick"));
//promise
//nextTick

답변 1

답변을 작성해보세요.

1

이게 노드 버전 따라서 동작이 다를 수 있습니다. process.nextTick이 js표준이 아니라서요.

그리고 두 번째 코드는 당연히 콘솔 promise 가 먼저 실행될 수밖에 없습니다. 코드를 잘 봐보세요.

setTimeout(console.log(1), 1000)

setTimeout(() => console.log(1), 1000)