AsyncGeneratorFunction
{{JSRef}}
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 {{jsxref("Function")}}
.
{{InteractiveExample("JavaScript Demo: AsyncGeneratorFunction()", "taller")}}
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"
Constructor
{{jsxref("AsyncGeneratorFunction/AsyncGeneratorFunction", "AsyncGeneratorFunction()")}}
- : Creates a new
AsyncGeneratorFunction
object.
- : Creates a new
Instance properties
Also inherits instance properties from its parent {{jsxref("Function")}}
.
These properties are defined on AsyncGeneratorFunction.prototype
and shared by all AsyncGeneratorFunction
instances.
{{jsxref("Object/constructor", "AsyncGeneratorFunction.prototype.constructor")}}
- : The constructor function that created the instance object. For
AsyncGeneratorFunction
instances, the initial value is the{{jsxref("AsyncGeneratorFunction/AsyncGeneratorFunction", "AsyncGeneratorFunction")}}
constructor.
- : The constructor function that created the instance object. For
AsyncGeneratorFunction.prototype.prototype
- : All async generator functions share the same
prototype
property, which isAsyncGenerator.prototype
. Each async generator function created with theasync function*
syntax or theAsyncGeneratorFunction()
constructor also has its ownprototype
property, whose prototype isAsyncGeneratorFunction.prototype.prototype
. When the async generator function is called, itsprototype
property becomes the prototype of the returned async generator object.
- : All async generator functions share the same
AsyncGeneratorFunction.prototype[Symbol.toStringTag]
- : The initial value of the
[Symbol.toStringTag]
property is the string"AsyncGeneratorFunction"
. This property is used in{{jsxref("Object.prototype.toString()")}}
.
- : The initial value of the
These properties are own properties of each AsyncGeneratorFunction
instance.
{{jsxref("AsyncGeneratorFunction/prototype", "prototype")}}
- : Used when the function is used as a constructor with the
new
operator. It will become the new object’s prototype.
- : Used when the function is used as a constructor with the
Instance methods
Inherits instance methods from its parent {{jsxref("Function")}}
.
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}
See also
async function*
async function*
expression{{jsxref("Function")}}
{{jsxref("AsyncFunction")}}
{{jsxref("GeneratorFunction")}}
{{jsxref("Functions", "Functions", "", 1)}}