2014-11-06 1 views
0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/EventLoop에서 비주얼 표현 사용 : setImmediate()nextTick() 차이점Stack 또는 Message에 대한 Javascript- setImmediate() 대 nextTick()?

겠습니까 하나 그런 다음 메시지 (큐)에 nextTick() 대한 코드 대 setImmediate() 대한 스택 (현재 실행 코드)의 코드?

enter image description here

+0

당신은'node.js' 런타임에 대해 이야기하고 있습니까? 또한,이 dup : http://stackoverflow.com/a/15349865/798682? – mattr

답변

1

호 모두 이러한 방법은 콜백 큐 상으로 이동하고 스택 방치 즉, 비동기 (달리 그것은 즉시 호출 된 것처럼).

그러나 setImmediatenextTick은 다른 대기열을 사용합니다. 다른 실행주기가 있으며 nextTick 콜백은 모두 첫 번째 setImmediate - 예정된 콜백보다 먼저 호출됩니다. 자세한 내용은 setImmediate vs. nextTick을 참조하십시오.

+0

다른 대기열을 사용한다는 의미로 설명하십시오. 내가 아는 한, 이벤트 루프에는 이러한 API가 작동하는 하나의 큐만 있습니다. – dman

+0

음, 아니. [여러 이벤트 루프] (http://stackoverflow.com/questions/10680601/nodejs-event-loop)가 있는데, "서로의 내부에서 실행 중"이라고 생각할 수 있습니다 (기술적으로 단일 대기열이 될 수도 있음). 그러나 다른 삽입 방법으로). 연결된 질문에서 자세히 설명했듯이'nextTick' 콜백은 IO 콜백 전에 실행됩니다. – Bergi