JavaScript - Generators
JavaScript generators powerful function technique ghaH (JavaScript developers vaD). Generators asynchronous functions cleaner structured way Daq ghItlh chaw'. 'ach generators nuq?
generator special function ghaH: values step by step return (Hoch wa' poH pagh). Generators iterators chenmoH laH je. generator defined function "yield" keyword lo' multiple values return laH.
misvam: simple generator JavaScript Daq chenmoH:
function* idGenerator() {
let id = 0;
while(true) {
yield id++;
}
}
let gen = idGenerator();
console.log(gen.next().value); // Ausgabe: 0
console.log(gen.next().value); // Ausgabe: 1
console.log(gen.next().value); // Ausgabe: 2
misvam Daq generator function "idGenerator" define, infinite while loop ghaj (pass Hoch ID return, 1 increment). ID value "yield" keyword return. generator function instance "let gen = idGenerator()" initialize, wej IDs print ("console.log(gen.next().value)" wej logh call).
output "0", "1" 'ej "2" ghaH.
Generators asynchronous functions support laH: "yield" lo' code pause, asynchronous operation result wait (next line qaSpa'). misvam: asynchronous generator JavaScript Daq:
function* asyncIdGenerator() {
let id = 0;
while(true) {
yield fetch('https://jsonplaceholder.typicode.com/todos/' + id)
.then(response => response.json())
.then(data => data.id);
id++;
}
}
let gen = asyncIdGenerator();
gen.next().value.then(val => console.log(val)); // Ausgabe: 1
gen.next().value.then(val => console.log(val)); // Ausgabe: 2
misvam Daq same generator function "idGenerator" lo' 'ach simple ID increment pagh - asynchronous function API vo' data retrieve, response vo' ID return. "fetch" method data retrieve, "yield" keyword generator function execution pause (asynchronous operation Qu' Dung). generator function instance "let gen = asyncIdGenerator()" initialize, cha' IDs print ("console.log(gen.next().value.then(val => console.log(val)))" cha'logh call). output "1" 'ej "2".