Bitte lassen Sie mich wissen, wenn dies zu vage einer Frage ist, aber was sind die Vorteile der Verwendung einer ES6-Generator-Funktion im Gegensatz zu Versprechen? Ich sehe den Vorteil im Moment nicht und hoffte, dass jemand etwas Licht darauf werfen könnte.ES6 Generator Funktion vs Versprechen
Zum Beispiel, wenn die Daten in einer asynchronen Weise abrufen:
/* Using promises */
fetch('api-endpoint')
.then(resp => response.json())
.then(name => obj.name)
.then(x => console.log('Name: ', name))
//VS
/* As a generator function and assuming we have required node-fetch */
run(function *() {
const url = 'api-endpoint';
const resp = yield fetch(url);
const obj = yield response.json();
const name = yield obj.name;
console.log("Name available here: ", name);
}
function run(genFunc) {
const iterator = genFunc();
const iteration = iterator.next();
const promise = iteration.value();
promise.then(x => {
const additionalIterator = iterator.next(x);
const additionalPromise = iterator.value;
additionalPromise.then(y => iterator.next(y));
});
}
Es ist ziemlich vage. Kannst du zeigen, wie du sie benutzen würdest, um ähnliche Dinge zu tun? – 4castle
Kein Problem, wird ein Beispiel hinzufügen. –