Node.js 和同步 API 函数

Posted

技术标签:

【中文标题】Node.js 和同步 API 函数【英文标题】:Node.js and Synchronous API functions 【发布时间】:2016-09-07 04:41:34 【问题描述】:

Node.js 通常鼓励使用异步 API 函数和回调。如果函数名称中包含“Sync”这个词,那么这个函数是同步函数,是否准确?

例如,在这个链接中:https://nodejs.org/api/fs.html, 您可以看到 fs.writeFile(file, data[, options], callback) 和 fs.writeFileSync(file, data[, options])。前者是异步的,后者是同步的。

【问题讨论】:

在大多数情况下是的,至少对于标准库中的函数。但如果您不确定,最好查阅特定功能的文档。 【参考方案1】:

如果函数名中包含单词是否准确 “同步”,所以这个函数是同步函数?

是的,这很准确。

在 node.js API 中,您可以通过以下方式判断某些内容是同步的还是异步的:

    如果它以“Sync”后缀结尾,则它是同步的。 如果是任何类型的 I/O 操作并且它接受回调并且没有“同步”,那么它是异步的。 如果提供了两个选项并且一个以“同步”后缀结尾,那么另一个是异步的。 如果它不接受回调或返回承诺或使用 eventEmitter(或类似的东西)来提供事件通知,那么它就不是异步的,因为它在完成后将无法与您通信。 您查阅特定函数的文档并查找对异步的引用。

【讨论】:

@CrazySynthax - 这回答了你的问题吗?【参考方案2】:

是的,在 NodeJS 的 API 中,包含“Sync”的函数通常是异步函数的同步版本。

编辑:请参阅 *** 用户 jfriend00's answer,因为他们详细介绍了如何在 NodeJS 的 API 中判断函数是同步还是异步。

【讨论】:

以上是关于Node.js 和同步 API 函数的主要内容,如果未能解决你的问题,请参考以下文章

Node.js 文件系统

Node-异步编程

5Node.js 回调函数

node.js 回调函数事件循环EventEmitter ar

文件系统(node.js学习笔记)

Node.js 同步与异步编程