खोज…


परिचय

एक async फ़ंक्शन वह है जो एक वादा लौटाता है। जब तक वादा हल नहीं होता तब तक फोन करने वाले को पैदावार का await और फिर परिणाम जारी रखें।

एक इटरेटर संग्रह एक साथ के माध्यम से लूप में चलाया जा करने की अनुमति देता for-of पाश।

एक async पुनरावृत्ति एक संग्रह है जहाँ प्रत्येक पुनरावृत्ति एक वादा है जिसे लूप के for-await-of उपयोग करके प्रतीक्षा की जा सकती है।

Async पुनरावृत्तियों एक चरण 3 प्रस्ताव हैं । वे Chrome Canary 60 में --harmony-async-iteration

वाक्य - विन्यास

  • async फ़ंक्शन * asyncGenerator () {}
  • उपज का इंतजार asyncOperationWhichReturnsAPromise ();
  • प्रतीक्षा के लिए (asyncGenerator () का परिणाम दें) {/ * परिणाम वादे से हल मूल्य है * /}

टिप्पणियों

एक एस्क्नेटर इट्रिज़र एक घोषणात्मक पुल स्ट्रीम है, जो ऑब्जर्वेबल की डिक्लेक्टिव पुश स्ट्रीम के विपरीत है।

उपयोगी कड़ियाँ

मूल बातें

एक जावास्क्रिप्ट Iterator एक .next() पद्धति के साथ एक वस्तु है, जो एक IteratorItem लौटाता है, जो value : <any> साथ एक वस्तु है value : <any> और done : <boolean>

ऐसा JavaScript AsyncIterator एक के साथ एक वस्तु है .next() विधि है, जो एक रिटर्न Promise<IteratorItem> , अगले मूल्य के लिए एक वादा।

AsyncIterator बनाने के लिए, हम async जनरेटर सिंटैक्स का उपयोग कर सकते हैं:

/**
 * Returns a promise which resolves after time had passed.
 */
const delay = time => new Promise(resolve => setTimeout(resolve, time));

async function* delayedRange(max) {
  for (let i = 0; i < max; i++) {
    await delay(1000);
    yield i;
  }
}

delayedRange फ़ंक्शन अधिकतम संख्या लेगा, और एक AsyncIterator , जो 1 सेकंड के अंतराल में 0 से उस संख्या की संख्या देता है।

उपयोग:

for await (let number of delayedRange(10)) {
  console.log(number);
}

लूप के for await of नए सिंटैक्स का एक और टुकड़ा है, जो केवल async कार्यों के अंदर उपलब्ध है, साथ ही साथ async जनरेटर भी हैं। लूप के अंदर, मानों की उपज (जो याद है, प्रोमिस हैं) अलिखित हैं, इसलिए प्रॉमिस छिपा हुआ है। पाश के भीतर, आप प्रत्यक्ष मूल्यों (झुकेंगे संख्या) के साथ सौदा कर सकते हैं, for await of पाश आपकी ओर से वादे के लिए इंतजार करेंगे।

ऊपर के उदाहरण है जब तक यह 9. जो बिंदु पर लॉग 1 सेकंड इंतजार करेंगे, लॉग 0, एक और दूसरा प्रतीक्षा करें, लॉग इन करें 1, और इतने पर, AsyncIterator हो जाएगा done है, और for await of पाश बाहर निकल जाएगा।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow