[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/AsyncGenerator/throw [Back]  [Original]

AsyncGenerator.prototype.throw() - JavaScript | MDN

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

View in English Always switch to English

AsyncGenerator.prototype.throw()

Baseline Weitgehend verfgbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Januar 2020 browserbergreifend verfgbar.

Die throw() Methode von AsyncGenerator Instanzen wirkt so, als ob ein throw-Statement an der aktuellen angehaltenen Position im Krper des Generators eingefgt worden wre, was den Generator ber eine Fehlerbedingung informiert und ihm ermglicht, den Fehler zu behandeln, oder Aufrumarbeiten durchzufhren und sich selbst zu schlieen.

In diesem Artikel

Syntax

js
asyncGeneratorInstance.throw(exception)

Parameter

exception

Die Ausnahme, die geworfen werden soll. Zu Debugging-Zwecken ist es ntzlich, sie als instanceof Error zu gestalten.

Rckgabewert

Falls der geworfene Fehler nicht abgefangen wird, wird ein Promise zurckgegeben, das mit der bergebenen Ausnahme abgelehnt wird.

Wird die Ausnahme von einem try...catch abgefangen und der Generator fhrt die Erzeugung weiterer Werte fort, wird ein Promise zurckgegeben, das mit einem Object aufgelst wird, das zwei Eigenschaften hat:

done

Ein boolescher Wert:

  • true, wenn der Kontrollfluss der Generatorfunktion das Ende erreicht hat.
  • false, wenn die Generatorfunktion in der Lage ist, weitere Werte zu erzeugen.
value

Der Wert, der vom nchsten yield-Ausdruck erzeugt wird.

Beispiele

Verwendung von throw()

Das folgende Beispiel zeigt einen Generator und einen Fehler, der mit der throw-Methode geworfen wird. Ein Fehler kann wie gewohnt von einem try...catch-Block abgefangen werden.

js
// An async task. Pretend it's doing something more useful
// in practice.
function sleep(time) {
  return new Promise((resolve, reject) => {
    setTimeout(resolve, time);
  });
}

async function* createAsyncGenerator() {
  while (true) {
    try {
      await sleep(500);
      yield 42;
    } catch (e) {
      console.error(e);
    }
  }
}

const asyncGen = createAsyncGenerator();
asyncGen.next(1).then((res) => console.log(res)); // { value: 42, done: false }
asyncGen
  .throw(new Error("Something went wrong")) // Error: Something went wrong
  .then((res) => console.log(res)); // { value: 42, done: false }

Spezifikationen

Spezifikation
ECMAScript 2027 LanguageSpecification
# sec-asyncgenerator-prototype-throw

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page