Node.js中异步生成器与异步迭代如何结合实现长尾异步操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2380个文字,预计阅读时间需要10分钟。
前言+生成器函数在JavaScript中的出现早于引入async/await,这意味着在创建异步生成器(即返回Promise且可使用await的生成器)的同时,还需要注意一些额外的注意事项。今天,我们将探讨这些注意事项。
前言
生成器函数在 JavaScript 中的出现早于引入 async/await,这意味着在创建异步生成器(始终返回 Promise 且可以 await 的生成器)的同时,还引入了许多需要注意的事项。
今天,我们将研究异步生成器及其近亲——异步迭代。
注意:尽管这些概念应该适用于所有遵循现代规范的 javascript,但本文中的所有代码都是针对 Node.js 10、12 和 14 版开发和测试的。
异步生成器函数
看一下这个小程序:
// File: main.js const createGenerator = function*(){ yield 'a' yield 'b' yield 'c' } const main = () => { const generator = createGenerator() for (const item of generator) { console.log(item) } } main()
这段代码定义了一个生成器函数,用该函数创建了一个生成器对象,然后用 for ... of 循环遍历该生成器对象。相当标准的东西——尽管你绝不会在实际工作中用生成器来处理如此琐碎的事情。如果你不熟悉生成器和 for ... of 循环,请看《Javascript 生成器》 和 《ES6 的循环和可迭代对象的》 这两篇文章。
本文共计2380个文字,预计阅读时间需要10分钟。
前言+生成器函数在JavaScript中的出现早于引入async/await,这意味着在创建异步生成器(即返回Promise且可使用await的生成器)的同时,还需要注意一些额外的注意事项。今天,我们将探讨这些注意事项。
前言
生成器函数在 JavaScript 中的出现早于引入 async/await,这意味着在创建异步生成器(始终返回 Promise 且可以 await 的生成器)的同时,还引入了许多需要注意的事项。
今天,我们将研究异步生成器及其近亲——异步迭代。
注意:尽管这些概念应该适用于所有遵循现代规范的 javascript,但本文中的所有代码都是针对 Node.js 10、12 和 14 版开发和测试的。
异步生成器函数
看一下这个小程序:
// File: main.js const createGenerator = function*(){ yield 'a' yield 'b' yield 'c' } const main = () => { const generator = createGenerator() for (const item of generator) { console.log(item) } } main()
这段代码定义了一个生成器函数,用该函数创建了一个生成器对象,然后用 for ... of 循环遍历该生成器对象。相当标准的东西——尽管你绝不会在实际工作中用生成器来处理如此琐碎的事情。如果你不熟悉生成器和 for ... of 循环,请看《Javascript 生成器》 和 《ES6 的循环和可迭代对象的》 这两篇文章。

