AsyncGeneratorFunction
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
The AsyncGeneratorFunction object provides methods for async generator functions. In JavaScript, every async generator function is actually an AsyncGeneratorFunction object.
Note that AsyncGeneratorFunction is not a global object. It can be obtained with the following code:
const AsyncGeneratorFunction = async function* () {}.constructor;
AsyncGeneratorFunction is a subclass of Function.
Try it
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 += val;
}
console.log(str);
}
generate();
// Expected output: "abc"
Constructor
AsyncGeneratorFunction()-
Creates a new
AsyncGeneratorFunctionobject.
Instance properties
Also inherits instance properties from its parent Function.
These properties are defined on AsyncGeneratorFunction.prototype and shared by all AsyncGeneratorFunction instances.
AsyncGeneratorFunction.prototype.constructor-
The constructor function that created the instance object. For
AsyncGeneratorFunctioninstances, the initial value is theAsyncGeneratorFunctionconstructor. AsyncGeneratorFunction.prototype.prototype-
All async generator functions share the same
prototypeproperty, which isAsyncGenerator.prototype. Each async generator function created with theasync function*syntax or theAsyncGeneratorFunction()constructor also has its ownprototypeproperty, whose prototype isAsyncGeneratorFunction.prototype.prototype. When the async generator function is called, itsprototypeproperty becomes the prototype of the returned async generator object. AsyncGeneratorFunction.prototype[Symbol.toStringTag]-
The initial value of the
[Symbol.toStringTag]property is the string"AsyncGeneratorFunction". This property is used inObject.prototype.toString().
These properties are own properties of each AsyncGeneratorFunction instance.
Instance methods
Inherits instance methods from its parent Function.
Specifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-asyncgeneratorfunction-objects> |
Browser compatibility
Loading…