node.js - 特定函数运行时阻塞事件循环
问题描述
我假设这个问题的答案非常简单。
每当运行特定功能时,我想阻止 nodejs 事件循环。该函数本身可能会调用它等待的一些异步事物,但我不希望在该函数执行其操作时发生任何其他事情。
谢谢!
解决方案
node.js中阻塞事件循环的方法是让代码同步:
while (true) {
// this will block the event loop
}
递归也是同步的
function rec() {
rec();
}
// This one exists with RangeError: Maximum call stack size exceeded
使用任何同步函数,例如:
fs.readFileSync()
fs.writeFileSync()
// any sync functions will do
如果您打算创建一个超时,这会阻止一切,只需创建一个十亿的 for 循环,它会停止一段时间。
您的请求似乎不自然,也许它不是您需要的 node.js。通常,节点中的人试图使一切异步。
推荐阅读
- rest - 使用跨多个文件拆分的 yaml 使用 Swagger UI 和 Swagger 编辑器进行设置
- openedx - 在 Open EDX Ironwood 版本中删除课程
- javascript - 如何使用散景和javascript旋转二维笛卡尔图?
- cookies - 是否有现成的解决方案可以在 MediaWiki 网站上显示符合 GDPR 的 cookie 同意消息?
- wordpress - 带有 wordpress 的高级帖子表
- javascript - 如何在 Angular 承诺中获得 javascript 响应
- html - 如何离线使用 Material Icons Outline 到 ::before 元素
- python - 需要有关为 PCA 准备自定义数据集的建议
- php - Laravel 使用 guzzle http 请求发送 post 请求
- discord.js - TypeError:message.guild.roles.find 不是函数