为了账号安全,请及时绑定邮箱和手机立即绑定

Nodejs setImmediate() 函数实时用例和示例

Nodejs setImmediate() 函数实时用例和示例

皈依舞 2023-02-17 15:46:03
有人可以解释一下 nodejs 中 setImmediate() 函数的实时用例吗?我浏览了很多博客,但他们在每个地方都给出了带有 setImmediate 的 console.log 示例。
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

setImmediate()当您想推迟运行某些代码或调用某些回调直到当前事件已完全处理并且控制权返回到事件循环之后时,此方法很有用。

您可能想要这样做的原因有很多:

  1. 在运行某些代码之前,您希望其他(已经挂起的)事件有机会得到处理。

  2. 你想调用一个回调,但你想异步调用它,以便在你调用回调之前运行后面的调用者代码。在 nodejs 库中有一些地方这样做是为了保证回调总是被异步调用,即使结果是同步已知的。这为调用者创建了编程一致性,因此回调不会有时被同步调用,有时被异步调用,这会导致细微的错误。

  3. 当您试图不阻塞事件循环太久时。您可以运行一段代码,然后在调用回调setImmediate()时调用并运行下一段代码,setImmediate()依此类推。这允许在您的处理块之间处理到达事件循环的其他事件。

将这篇文章设置为易于阅读的setImmediate(),setTimeout()和摘要process.nextTick()

Node.js 中的调度执行 - setTimeout、setImmediate 和 process.nextTick 之间的区别。

以下是 nodejs 和 Express 源代码中的一些示例:

套接字:确保异步调度写入

HTTP:确保在堆栈展开之前不会删除解析器

只有在堆栈展开后,Express 才会在层路由中调用回调

Express 在中止时调用sendFile()回调回调,仅在堆栈展开后


查看完整回答
反对 回复 2023-02-17
  • 1 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号