等待输入和输出的阻塞方法

时间:2016-08-25 00:52:04

标签: node.js command-line command-line-interface blocking

我正在节点中为命令行编写消息传递应用程序。它需要能够打印新接收的消息,同时允许用户键入要随时发送的消息。

你能帮我弄清楚如何创建一个阻止方法,它在收到像" EXIT"这样的特定输入后退出,但是允许打印到控制台并且可以接收和处理不输入的输入匹配退出案例?提前谢谢。

1 个答案:

答案 0 :(得分:2)

你不能在node.js中这样做。如果要接收其他类型的事件,则无法阻止主JS线程。 node.js中的Javascript是单线程和事件驱动的。获取下一个事件的唯一方法是非阻塞,因此主JS线程可以获取事件队列中的下一个事件。

您很可能通过非阻塞I / O提供所需的功能。您必须向我们展示您目前为止所拥有的代码,以便为您提供有关如何使用您的代码实现这一目标的进一步建议。

请记住,您可以随时使用process.exit()退出node.js进程,这样您就可以拥有异步,事件驱动的输入处理程序,并且只要找到EXIT之类的特定输入,它就会然后调用process.exit()退出该过程。对于其他输入,它将根据键入的内容调度到适当的处理程序。