| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/AsyncGenerator/next | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
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.
next()
next(value)
value OptionalEin optionaler Wert, der verwendet wird, um den internen Zustand des Generators zu ndern. Ein an die next()-Methode bergebener Wert wird von yield empfangen.
Ein Promise, das beim Auflsen ein Object mit zwei Eigenschaften zurckgibt:
doneEin 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.valueJeder JavaScript-Wert, der vom Generator "yielded" oder zurckgegeben wurde.
Das folgende Beispiel zeigt einen Generator und das Objekt, das die next-Methode zurckgibt:
// 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 }
In diesem Beispiel wird next mit einem Wert aufgerufen.
Hinweis: Der erste Aufruf protokolliert nichts, da der Generator zunchst nichts "yielded".
// 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();
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-asyncgenerator-prototype-next |
async function*AsyncGeneratorAsyncIteratorObject/FunctionDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |