Node.js 脚本在要求时挂起,但在 REPL 中工作正常
Node.js script hangs on require, but works fine in the REPL
我 运行正在 node.js
Ubuntu 18.04 LTS。使用 require
时,我似乎得到了不同的行为,具体取决于我是在 REPL 中还是在脚本中使用它。具体来说,我用npm
下载了lightstreamer-client-node
。现在,我打开一个终端并执行以下操作:
colin@colin-XPS-15-9550:~$ node
> var x = require('lightstreamer-client-node')
这非常有效。
现在我想在脚本中使用这个包。我创建了一个文本文件 node_test.js
只包含以下行:
var x = require('lightstreamer-client-node')
然后我打开一个终端并运行命令:
colin@colin-XPS-15-9550:~$ node /home/colin/node_test.js
这会无限期地挂在闪烁的光标上。
我是 node.js
和 JavaScript
的新手,所以这可能是预期的行为。我已经阅读了一些有关 require
函数的资料,但似乎找不到相关的解释。请注意,如果我将 lightstreamer-client-node
替换为其他节点模块,例如safe-buffer
,然后一切正常,无论我使用 REPL 还是脚本。
该进程似乎挂起,因为库 lightstreamer-client 安装了一个计时器,具有 setInterval 函数,用于其内部活动,而 nodejs 不允许在有活动任务时正常关闭。所以终止脚本的唯一方法是使用函数 process.exit.
我 运行正在 node.js
Ubuntu 18.04 LTS。使用 require
时,我似乎得到了不同的行为,具体取决于我是在 REPL 中还是在脚本中使用它。具体来说,我用npm
下载了lightstreamer-client-node
。现在,我打开一个终端并执行以下操作:
colin@colin-XPS-15-9550:~$ node
> var x = require('lightstreamer-client-node')
这非常有效。
现在我想在脚本中使用这个包。我创建了一个文本文件 node_test.js
只包含以下行:
var x = require('lightstreamer-client-node')
然后我打开一个终端并运行命令:
colin@colin-XPS-15-9550:~$ node /home/colin/node_test.js
这会无限期地挂在闪烁的光标上。
我是 node.js
和 JavaScript
的新手,所以这可能是预期的行为。我已经阅读了一些有关 require
函数的资料,但似乎找不到相关的解释。请注意,如果我将 lightstreamer-client-node
替换为其他节点模块,例如safe-buffer
,然后一切正常,无论我使用 REPL 还是脚本。
该进程似乎挂起,因为库 lightstreamer-client 安装了一个计时器,具有 setInterval 函数,用于其内部活动,而 nodejs 不允许在有活动任务时正常关闭。所以终止脚本的唯一方法是使用函数 process.exit.