wani abu ne mai karni wanda ke kaiwa . Wani abu shine idan yana da karni — shi ne wanda ke sa da spread suyi aiki. () shine hanya mai saukin don ƙirƙira iterators da za su tare da .
wani abu ne mai karni wanda ke kaiwa . Wani abu shine idan yana da karni — shi ne wanda ke sa da spread suyi aiki. () shine hanya mai saukin don ƙirƙira iterators da za su tare da .
next(){ value, done }[Symbol.iterator]for...offunction*yieldfunction* idGenerator() {
let id = 1;
while (true) { // infinite, but lazy — only computes on demand
yield id++; // pause here, return a value, resume on next()
}
}
const gen = idGenerator();
gen.next().value; // 1
gen.next().value; // 2 — execution resumed where it paused
Fibbin muhimmin RA'AYI: aiwatarwa yana tsayawa a kowane yield kuma yana sake farawa a gida .next() na gida, nare jikin yanayin tsakanin kiran. Ba abin da aka ƙididdige ba sai kun bukaci.
// process a huge/infinite sequence without building it all in memory
function* take(iterable, n) {
let i = 0;
for (const x of iterable) {
if (i++ >= n) return;
yield x;
}
}
[...take(idGenerator(), 3)]; // [1, 2, 3] — from an infinite generator
const range = {
from: 1, to: 3,
*[Symbol.iterator]() { for (let i = this.from; i <= this.to; i++) yield i; },
};
[...range]; // [1, 2, 3] — works with for...of and spread
Generators yana ba da damar jingina/ba-da-iyawa jeri, ubangiji jeri, da abubuwan da suka canzа cutin na jikun makamatua.
Su ma ne tushen karewaje na farko (co) kuma suna cike da ubangiji jeri (for await...of).
Protocol mai jeri shi ne wanda ya haḍa for...of, spread, da tabbatar kudu tsaka, Saituna, Saiti, da katatara.