ਇੱਕ ਇੱਕ ਵਸਤੂ ਹੈ ਜਿਸ ਕੋਲ ਇੱਕ ਢੰਗ ਹੈ ਜੋ ਵਾਪਸ ਕਰਦਾ ਹੈ। ਇੱਕ ਵਸਤੂ ਹੈ ਜੇਕਰ ਇਸ ਕੋਲ ਢੰਗ ਹੈ — ਇਹ ਉਹ ਹੈ ਜੋ ਅਤੇ spread ਨੂੰ ਕੰਮ ਕਰਦਾ ਹੈ। ਇੱਕ () iterators ਬਣਾਉਣ ਦਾ ਇੱਕ ਸੁਵਿਧਾਜਨਕ ਤਰੀਕਾ ਹੈ ਜੋ ਨਾਲ ।
ਇੱਕ ਇੱਕ ਵਸਤੂ ਹੈ ਜਿਸ ਕੋਲ ਇੱਕ ਢੰਗ ਹੈ ਜੋ ਵਾਪਸ ਕਰਦਾ ਹੈ। ਇੱਕ ਵਸਤੂ ਹੈ ਜੇਕਰ ਇਸ ਕੋਲ ਢੰਗ ਹੈ — ਇਹ ਉਹ ਹੈ ਜੋ ਅਤੇ spread ਨੂੰ ਕੰਮ ਕਰਦਾ ਹੈ। ਇੱਕ () iterators ਬਣਾਉਣ ਦਾ ਇੱਕ ਸੁਵਿਧਾਜਨਕ ਤਰੀਕਾ ਹੈ ਜੋ ਨਾਲ ।
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
ਮੁੱਖ ਵਿਚਾਰ: ਬਰਤਾਂਬ ਹਰ yield ਉੱਤੇ ਰੁਕ ਜਾਂਦੀ ਹੈ ਅਤੇ ਅਗਲੀ .next() ਉੱਤੇ ਮੁੜ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ, ਕਾਲਾਂ ਵਿਚਕਾਰ ਸਥਾਨਕ ਸਥਿਤੀ ਨੂੰ ਸੁਰੱਖਿਤ ਰੱਖਦੇ ਹੋਏ। ਕੁਝ ਵੀ ਅਤੇ ਤੁਹਾਨੂੰ ਮੰਗਣ ਤੱਕ ਗਿਣਿਆ ਨਹੀਂ ਜਾਂਦਾ।
// 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
ਜਨਰੇਟਰ ਸਸਤੀਆਂ/ਅਨੰਤ ਲੜੀਆਂ, ਕਸਟਮ ਦੁਹਰਾਉਣਾ, ਅਤੇ ਮੈਮੋਰੀ-ਪ੍ਰਭਾਵੀ ਸਟ੍ਰੀਮਿੰਗ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦੇ ਹਨ।
ਉਹ ਸ਼ੁਰੂਆਤੀ async ਲਾਇਬ੍ਰੇਰੀਆਂ (co) ਦੀ ਨੀਂਦ ਵੀ ਸਨ ਅਤੇ async ਦੁਹਰਾਉਣ (for await...of) ਨੂੰ ਹੇਠੋ ਹੇਠ ਪਤਾ ਚਲਦਾ ਹੈ।
Iterator protocol ਉਹ ਹੈ ਜੋ for...of, spread, ਅਤੇ destructuring ਨੂੰ arrays, Maps, Sets, ਅਤੇ strings ਵਿੱਚ ਇਕੱਠਾ ਕਰਦਾ ਹੈ।
ਵਿਸਤ੍ਰਿਤ ਜਵਾਬਾਂ ਨਾਲ IT ਇੰਟਰਵਿਊ ਸਵਾਲਾਂ ਦੀ ਇੱਕ ਲਾਇਬ੍ਰੇਰੀ — ਜੂਨੀਅਰ ਤੋਂ ਸੀਨੀਅਰ ਤੱਕ।
ਦਾਨ ਕਰੋ