Skip to content

Commit 78d23da

Browse files
committed
Updates basic/nextTick-setTimeout.md
Auto commit by GitBook Editor
1 parent ab55cdb commit 78d23da

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

basic/nextTick-setTimeout.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
2. `process.nextTick` 方法可以在当前"执行栈"的尾部-->下一次Event Loop(主线程读取"任务队列")之前-->触发。process指定的回调函数注册的回调会在事件循环的当前阶段结束前执行,而不是只有 `poll``check` 阶段才会执行。`process` 是内核模块,运行时是全局上下文,所以 `microtask` 只有一个,无论你是在哪个阶段、哪个闭包内用 `nextTick` 注册的回调都会被 `push``nextTickQueue`,并在事件循环当前阶段结束前执行。
66

7-
3. `setImmediate` 注册的回调会在 `check` 阶段执行因为它需要由 `check watcher `来执行,`check watcher `只在` check `阶段处于 `active` 状态。与 `process.nextTick `不同,setImmediate 因运行时的上下文不同而产生不同的 `ImmediateList`,所以 `microtask `可以有多个。`setImmediate` 会在异常的时候执行` process.nextTick(processImmediate)`,会在当前阶段结束前重新执行一次这个异常任务(即 check 阶段)。
7+
3. `setImmediate` 注册的回调会在 `check` 阶段执行,属于check观察者,其设置的回调函数,会插入到**下次事件循环的末尾**。。因为它需要由 `check watcher `来执行,`check watcher `只在` check `阶段处于 `active` 状态。与 `process.nextTick `不同,setImmediate 因运行时的上下文不同而产生不同的 `ImmediateList`,所以 `microtask `可以有多个。`setImmediate` 会在异常的时候执行` process.nextTick(processImmediate)`,会在当前阶段结束前重新执行一次这个异常任务(即 check 阶段)。Else,创建异步操作的话毋庸置疑是使用setImmediate
88

99

1010
### 举例

0 commit comments

Comments
 (0)