0

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.jsJavaScript所以也许这是预期的行为。我已经阅读了有关该require功能的一些内容,但似乎找不到它的解释。请注意,如果我lightstreamer-client-node用其他一些节点模块替换,例如safe-buffer,那么一切正常,无论我使用 REPL 还是脚本。

4

1 回答 1

2

该过程似乎挂起,因为库 lightstreamer-client 为其内部活动安装了一个带有函数 setInterval 的计时器,并且当有活动任务时,nodejs 不允许正常关闭。所以终止脚本的唯一方法是使用函数 process.exit。

于 2020-04-15T08:38:00.360 回答