AsyncGeneratorFunction 对象为异步生成器函数提供方法。在 JavaScript 中,每个异步生成器函数实际上都是一个 AsyncGeneratorFunction 对象。
注意,AsyncGeneratorFunction 不是全局对象。它可以通过以下代码获取:
const AsyncGeneratorFunction = async function* () {}.constructor;
AsyncGeneratorFunction 是 Function 的一个子类。
{{InteractiveExample("JavaScript Demo: AsyncGeneratorFunction()", "taller")}}
```js interactive-example const AsyncGeneratorFunction = async function* () {}.constructor;
const foo = new AsyncGeneratorFunction(yield await Promise.resolve('a');
yield await Promise.resolve('b');
yield await Promise.resolve('c'););
let str = "";
async function generate() { for await (const val of foo()) { str = str + val; } console.log(str); }
generate(); // Expected output: "abc" ```
构造函数
- {{jsxref("AsyncGeneratorFunction/AsyncGeneratorFunction", "AsyncGeneratorFunction()")}}
- : 创建一个新的
AsyncGeneratorFunction对象。
- : 创建一个新的
实例属性
同时也从它的父类 Function 继承实例属性。
这些属性定义在 AsyncGeneratorFunction.prototype 并且由所有 AsyncGeneratorFunction 实例共享。
- {{jsxref("Object/constructor", "AsyncGeneratorFunction.prototype.constructor")}}
- : 用于创建实例对象的构造函数。对于
AsyncGeneratorFunction实例,初始值是 {{jsxref("AsyncGeneratorFunction/AsyncGeneratorFunction", "AsyncGeneratorFunction")}} 构造函数。
- : 用于创建实例对象的构造函数。对于
AsyncGeneratorFunction.prototype.prototype- : 所有异步生成器函数共享相同的
prototype属性,即AsyncGenerator.prototype。每个异步生成器函数实例也都有它自己的prototype属性。当调用异步生成器函数时,返回的异步生成器对象继承自异步生成器函数的prototype属性,而 property 属性也继承自AsyncGeneratorFunction.prototype.prototype。
- : 所有异步生成器函数共享相同的
AsyncGeneratorFunction.prototype[Symbol.toStringTag]- :
[Symbol.toStringTag]属性的初始值是字符串"AsyncGeneratorFunction"。该属性在Object.prototype.toString()中使用。
- :
实例方法
同时也从它的父类 Function 继承方法。