在运行特定功能时阻止事件循环

时间:2019-05-02 13:49:04

标签: node.js

我认为答案很简单。

想要每当运行特定功能时都阻塞nodejs事件循环。函数本身可能会调用一些等待等待的异步操作,但是我不希望在此函数执行操作时发生任何其他事情。

谢谢!

1 个答案:

答案 0 :(得分:4)

在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循环到10亿,它就会停止一会儿。

  

您的请求似乎不自然,也许不是您需要的node.js。通常,节点中的人们正在尝试使所有内容异步化。