Symbol.asyncIterator 属性用于定义对象上的异步迭代方法。它是在 ECMAScript 2018 规范中引入的,用于启用 JavaScript 异步迭代协议。JavaScript 通常允许使用 for...of 循环,它可以对各种可迭代对象进行操作,包括 set、array、strings、map 等。但是,在迭代需要异步操作(例如,从服务器检索数据或从流中读取)的情况下,同步迭代是不合适的。
为了克服这个问题,ECMAScript 引入了异步迭代器和 Symbol.asyncIterator 属性的概念。此内置元件使对象成为异步可迭代对象,从而启用异步迭代。
语法
以下是 JavaScript Symbol.asynciterator 属性的语法 -
参数
此属性不接受任何类型的参数。
返回值
此属性返回异步迭代器对象的值。
示例 1
让我们看看下面的例子,我们将使用 for await of 循环创建一个带有 symbol.asyncIterator 的异步可迭代对象。
如果我们执行上述程序,它将在网页上显示数字。
示例 2
考虑另一个场景,我们将定义一个异步生成器函数,它返回一个异步可迭代对象。
在执行上述脚本时,它将在网页上显示文本。
示例 3
在下面的示例中,我们将使用 Symbol.asyncIterator 创建一个生成值的自定义异步可迭代类。
当我们执行脚本时,它会在网页上显示一个文本。