We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent ab55cdb commit 78d23daCopy full SHA for 78d23da
basic/nextTick-setTimeout.md
@@ -4,7 +4,7 @@
4
5
2. `process.nextTick` 方法可以在当前"执行栈"的尾部-->下一次Event Loop(主线程读取"任务队列")之前-->触发。process指定的回调函数注册的回调会在事件循环的当前阶段结束前执行,而不是只有 `poll`、`check` 阶段才会执行。`process` 是内核模块,运行时是全局上下文,所以 `microtask` 只有一个,无论你是在哪个阶段、哪个闭包内用 `nextTick` 注册的回调都会被 `push` 到`nextTickQueue`,并在事件循环当前阶段结束前执行。
6
7
-3. `setImmediate` 注册的回调会在 `check` 阶段执行。因为它需要由 `check watcher `来执行,`check watcher `只在` check `阶段处于 `active` 状态。与 `process.nextTick `不同,setImmediate 因运行时的上下文不同而产生不同的 `ImmediateList`,所以 `microtask `可以有多个。`setImmediate` 会在异常的时候执行` process.nextTick(processImmediate)`,会在当前阶段结束前重新执行一次这个异常任务(即 check 阶段)。
+3. `setImmediate` 注册的回调会在 `check` 阶段执行,属于check观察者,其设置的回调函数,会插入到**下次事件循环的末尾**。。因为它需要由 `check watcher `来执行,`check watcher `只在` check `阶段处于 `active` 状态。与 `process.nextTick `不同,setImmediate 因运行时的上下文不同而产生不同的 `ImmediateList`,所以 `microtask `可以有多个。`setImmediate` 会在异常的时候执行` process.nextTick(processImmediate)`,会在当前阶段结束前重新执行一次这个异常任务(即 check 阶段)。Else,创建异步操作的话毋庸置疑是使用setImmediate。
8
9
10
### 举例
0 commit comments