Node.js - 平台是否负责异步处理?

时间:2015-06-11 20:36:12

标签: node.js

我一直在研究Node.js,它似乎为Web服务器开发提供了一个全新的维度。但是,我对作为其主要优点的异步处理感到困惑。

运行时是自动处理所有异步处理还是仅提供可用于构建异步应用程序的API?或者两者都有?

3 个答案:

答案 0 :(得分:1)

自动。 Event Loop提供函数调用的异步处理

回调函数(或promises)允许您将逻辑分解为添加到事件循环队列的单独(非阻塞)块,因此您的程序流最终成为一堆异步函数调用

答案 1 :(得分:1)

Node.js适用于异步模型,因为它使用回调函数将是事件驱动的。 Node.js是单线程的,因此它可以更有效地管理资源,并以非常简单的方式管理异步模型。

Node.js提供了许多异步模块/ API,但也有同步API。

但您也可以在node.js中编写同步函数。 例如fs可以同步或异步写入。

我对你的回答是: 这是代码编写的方式。

您也可以在其他语言(如Java)中编写异步代码,但由于您需要处理多线程环境,资源管理将非常复杂。

但大卫对于偶数驱动循环是正确的。

答案 2 :(得分:0)

Node.js API是围绕异步I / O处理而设计的。您仍然需要使用异步模式进行开发。 "自动"从某种意义上说,以下同步代码可以在Node.js中使用:results = db.query();