JavaScript AsyncGeneratorFunction
原创AsyncGeneratorFunction
AsyncGeneratorFunction 对象为异步生成器函数提供方法。在 JavaScript 中,每个异步生成器函数实际上都是一个 AsyncGeneratorFunction 对象。
需要注意的是,AsyncGeneratorFunction 并不是全局对象。它可以通过以下代码获取:
const AsyncGeneratorFunction = async function* () {}.constructor;
AsyncGeneratorFunction 是 Function 的一个子类。
构造函数
AsyncGeneratorFunction() 创建一个新的 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() 中使用。
实例方法
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();
// 预期输出: "abc"
相关概念
async function*async function*表达式FunctionAsyncFunctionGeneratorFunction- 函数
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权本站发表,未经许可,不得转载。
开发学习网




