2016-08-25 111 views
0

我正在为命令行编写一个消息传递应用程序。它需要能够打印新收到的消息,同时允许用户输入消息以随时发送。阻塞等待输入和输出的方法

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

回答

2

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

您可能非常可能通过非阻塞I/O提供所需的功能。您将不得不向我们展示您到目前为止的代码,以便为您提供有关如何使用您的代码实现该功能的进一步建议。

请记住,你可以在任何时间process.exit()退出node.js的过程,所以你可以只是异步,事件驱动的输入,处理,每当它发现特定输入像EXIT,它会再调用process.exit()退出过程。对于其他输入,它将根据输入的内容发送到适当的处理程序。