AsyncGeneratorFunction

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流瀏覽器均已支援。

AsyncGeneratorFunction 物件提供了訪問 非同步生成器函式 的方法。在 JavaScript 中,每個非同步生成器函式實際上都是一個 AsyncGeneratorFunction 物件。

請注意,AsyncGeneratorFunction 不是一個全域性物件。可以透過以下程式碼獲取它:

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

AsyncGeneratorFunctionFunction 的一個子類。

試一試

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"

建構函式

AsyncGeneratorFunction()

建立一個新的 AsyncGeneratorFunction 物件。

例項屬性

也從其父級 Function 繼承例項屬性。.

這些屬性定義在 AsyncGeneratorFunction.prototype 上,並被所有 AsyncGeneratorFunction 例項共享。

AsyncGeneratorFunction.prototype.constructor

建立了例項物件的建構函式。對於 AsyncGeneratorFunction 例項,初始值是 AsyncGeneratorFunction 建構函式。

AsyncGeneratorFunction.prototype.prototype

所有非同步生成器函式共享同一個 prototype 屬性,即 AsyncGenerator.prototype。透過 async function* 語法或 AsyncGeneratorFunction() 建構函式建立的每個非同步生成器函式也有自己的 prototype 屬性,其原型是 AsyncGeneratorFunction.prototype.prototype。當非同步生成器函式被呼叫時,其 prototype 屬性將成為返回的非同步生成器物件的原型。

AsyncGeneratorFunction.prototype[Symbol.toStringTag]

[Symbol.toStringTag] 屬性的初始值是字串 "AsyncGeneratorFunction"。此屬性用於 Object.prototype.toString()

這些屬性是每個 AsyncGeneratorFunction 例項自身的屬性。

prototype

當函式用作使用 new 運算子的建構函式時使用。它將成為新物件的原型。

例項方法

從其父級 Function 繼承例項方法。.

規範

規範
ECMAScript® 2026 語言規範
# sec-asyncgeneratorfunction-objects

瀏覽器相容性

另見