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

AsyncGenerator.prototype.next() - 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.next()

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 next()-Methode von AsyncGenerator-Instanzen gibt den nchsten Wert in der Sequenz zurck.

In diesem Artikel

Syntax

js
next()
next(value)

Parameter

value Optional

Ein optionaler Wert, der verwendet wird, um den internen Zustand des Generators zu ndern. Ein an die next()-Methode bergebener Wert wird von yield empfangen.

Rckgabewert

Ein Promise, das beim Auflsen ein Object mit zwei Eigenschaften zurckgibt:

done

Ein boolescher Wert:

  • true, wenn der Generator das Ende seines Kontrollflusses erreicht hat. In diesem Fall gibt value den Rckgabewert des Generators an (der mglicherweise undefiniert ist).
  • false, wenn der Generator in der Lage ist, weitere Werte zu erzeugen.
value

Jeder JavaScript-Wert, der vom Generator "yielded" oder zurckgegeben wurde.

Beispiele

Verwenden von next()

Das folgende Beispiel zeigt einen Generator und das Objekt, das die next-Methode zurckgibt:

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

async function* createAsyncGenerator() {
  yield delayedValue(500, 1);
  yield delayedValue(500, 2);
  yield delayedValue(500, 3);
}

const asyncGen = createAsyncGenerator();
asyncGen.next().then((res) => console.log(res)); // { value: 1, done: false }
asyncGen.next().then((res) => console.log(res)); // { value: 2, done: false }
asyncGen.next().then((res) => console.log(res)); // { value: 3, done: false }
asyncGen.next().then((res) => console.log(res)); // { value: undefined, done: true }

Werte an den Generator senden

In diesem Beispiel wird next mit einem Wert aufgerufen.

Hinweis: Der erste Aufruf protokolliert nichts, da der Generator zunchst nichts "yielded".

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) {
    await sleep(500);
    const value = yield;
    console.log(value);
  }
}

async function main() {
  const asyncGen = createAsyncGenerator();
  // No log at this step: the first value sent through `next` is lost
  console.log(await asyncGen.next(1)); // { value: undefined, done: false }
  // Logs 2: the value sent through `next`
  console.log(await asyncGen.next(2)); // { value: undefined, done: false }
}

main();

Spezifikationen

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

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page