Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

AsyncIterator.prototype[Symbol.asyncDispose]()

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

Die Methode [Symbol.asyncDispose]() von AsyncIterator-Instanzen implementiert das Protokoll zur asynchronen Ressourcenfreigabe. Dadurch kann eine Instanz bei der Verwendung mit await using freigegeben werden. Die Methode ruft die return()-Methode von this auf und wartet auf deren Abschluss, sofern sie vorhanden ist.

Syntax

js
asyncIterator[Symbol.asyncDispose]()

Parameter

Keine.

Rückgabewert

Keiner (undefined).

Beispiele

Einen asynchronen Iterator mit await using deklarieren

Die Methode Symbol.asyncDispose ist dafür vorgesehen, bei einer await using-Deklaration automatisch aufgerufen zu werden. Das ist nützlich, wenn Sie einen asynchronen Iterator manuell durch Aufrufe seiner next()-Methode durchlaufen. Wenn Sie ihn mit for await...of oder auf ähnliche Weise durchlaufen, erfolgen Fehlerbehandlung und Bereinigung automatisch.

js
async function* generateNumbers() {
  try {
    yield 1;
    yield 2;
    yield 3;
  } finally {
    console.log("Cleaning up");
  }
}

async function doSomething() {
  await using numbers = generateNumbers();
  const res1 = await numbers.next();
  // Not iterating the rest of the numbers
  // Before the function exits, the async iterator is disposed
  // Logs "Cleaning up"
}

doSomething();

Spezifikationen

Spezifikation
ECMAScript Async Explicit Resource Management
# sec-asyncdisposablestack.prototype-@@asyncDispose

Browser-Kompatibilität

Siehe auch