AsyncGeneratorFunction 对象为异步生成器函数提供方法。在 JavaScript 中,每个异步生成器函数实际上都是一个 AsyncGeneratorFunction 对象。

注意,AsyncGeneratorFunction 不是全局对象。它可以通过以下代码获取:

const AsyncGeneratorFunction = async function* () {}.constructor;

AsyncGeneratorFunctionFunction 的一个子类。

{{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 继承方法