AsyncGeneratorFunction
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年1月.
AsyncGeneratorFunction 对象为异步生成器函数提供方法。在 JavaScript 中,每个异步生成器函数实际上都是一个 AsyncGeneratorFunction 对象。
注意,AsyncGeneratorFunction 不是全局对象。它可以通过以下代码获取:
const AsyncGeneratorFunction = async function* () {}.constructor;
AsyncGeneratorFunction 是 Function 的一个子类。
尝试一下
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"
构造函数
AsyncGeneratorFunction()-
创建一个新的
AsyncGeneratorFunction对象。
实例属性
同时也从它的父类 Function 继承实例属性。
这些属性定义在 AsyncGeneratorFunction.prototype 并且由所有 AsyncGeneratorFunction 实例共享。
AsyncGeneratorFunction.prototype.constructor-
用于创建实例对象的构造函数。对于
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 继承方法。
规范
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-asyncgeneratorfunction-objects> |
浏览器兼容性
Loading…