Computer >> कंप्यूटर ट्यूटोरियल >  >> सॉफ्टवेयर >> ब्राउज़र्स

JavaScript के queueMicrotask में महारत हासिल करें: एक व्यापक गाइड

परिचय

queueMicrotask एक नया ब्राउज़र API है जिसका उपयोग आपके सिंक्रोनस कोड को एसिंक्रोनस में बदलने के लिए किया जा सकता है:

queueMicrotask(() => { console.log('hey i am executed asychronously by queueMicrotask'); });

यह उससे मिलता-जुलता है जो हम setTimeout का उपयोग करके कर रहे थे:

setTimeout(() => { console.log('hey i am executed asychronously by setTimeout'); }, 0);

तो जब हमारे पास पहले से setTimeout है तो queueMicrotask का क्या उपयोग है?

queueMicrotask फ़ंक्शन (टास्क) को एक कतार में जोड़ता है और प्रत्येक फ़ंक्शन को एक-एक करके (FIFO) निष्पादित किया जाता है जब वर्तमान टास्क अपना काम पूरा कर लेता है और जब कोई अन्य कोड निष्पादित होने की प्रतीक्षा नहीं कर रहा होता है इससे पहले कि निष्पादन संदर्भ का नियंत्रण ब्राउज़र के इवेंट लूप को वापस कर दिया जाता है।

मूल रूप से queueMicrotask के टास्क वर्तमान कॉलस्टैक खाली होने के ठीक बाद निष्पादित होते हैं इससे पहले कि निष्पादन को इवेंट लूप को पास किया जाए।

setTimeout के मामले में, प्रत्येक टास्क इवेंट कतार से निष्पादित होता है, नियंत्रण इवेंट लूप को दिए जाने के बाद।

तो अगर हम पहले setTimeout और फिर queueMicrotask निष्पादित करते हैं, तो पहले कौन सा कॉल किया जाएगा? निम्नलिखित कोड निष्पादित करें और स्वयं देखें:

setTimeout(() => { console.log('hey i am executed asychronously by setTimeout'); },0); queueMicrotask(() => { console.log('hey i am executed asychronously by queueMicrotask'); });

Node.js "process.nextTick" के साथ वही काम करता है।

इसका उपयोग कब करें

queueMicrotask, का उपयोग कब करना है इसके लिए कोई नियम नहीं है, लेकिन इसका उपयोग चतुराई से वर्तमान निष्पादन को रोके बिना कोड के एक टुकड़े को चलाने के लिए किया जा सकता है।

उदाहरण के लिए, मान लीजिए हमारे पास एक सरणी है जहां हम मानों की सूची बनाए रख रहे हैं। हर मान डालने के बाद, हम सरणी को सॉर्ट करते हैं ताकि मानों को खोजना तेज़ हो।

var arr=[]; function add(value){ arr.push(value); arr.sort(); }

हालांकि, किसी एलिमेंट को खोजना तब किया जाता है जब कोई सर्च इनपुट बॉक्स का उपयोग करता है। इसका मतलब है कि इवेंट हैंडलर को नियंत्रण इवेंट लूप को स्थानांतरित होने के बाद कॉल किया जाएगा, इसलिए डेटा को सॉर्ट करना अन्य महत्वपूर्ण सिंक्रोनस कोड के निष्पादन को ब्लॉक करता है।

यहां बताया गया है कि हम अपने कोड को बेहतर बनाने के लिए queueMicrotask का उपयोग कैसे कर सकते हैं:

var arr = []; function add(value) { arr.push(value); queueMicrotask(() => { arr.sort(); }) }

संदर्भ

  • https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/queueMicrotask
  1. अपाचे कैसेंड्रा: स्केलेबल, फॉल्ट-टॉलरेंट डेटाबेस के लिए व्यापक परिचय अपाचे कैसेंड्रा: स्केलेबल, फॉल्ट-टॉलरेंट डेटाबेस के लिए व्यापक परिचय

    यह ब्लॉग नॉन-रिलेशनल डेटाबेस, अपाचे कैसेंड्रा™ का अवलोकन देता है। यह इसके घटकों पर चर्चा करता है और इस समझ को प्रदान करता है कि डेटाबेस कैसे संचालित होता है और डेटा का प्रबंधन करता है। परिचय एक संगठन जिसे मुख्य रूप से अपने दिन-प्रतिदिन के परिचालन डेटा को बनाए रखने के लिए स्केलेबिलिटी और उच्च उपलब्धत

  1. CPADMIN में मास्टर करना: Oracle के समवर्ती प्रसंस्करण यूटिलिटी के लिए आपका गाइड CPADMIN में मास्टर करना: Oracle के समवर्ती प्रसंस्करण यूटिलिटी के लिए आपका गाइड

    CPADMIN द्वारा संभाले जाने वाले कार्य आप CPADMIN का उपयोग निम्नलिखित कार्यों के लिए कर सकते हैं: प्रबंधक स्थिति देखें: सभी प्रबंधकों की स्थिति दिखाता है। आप सभी चल रहे समवर्ती प्रबंधक (CM) स्थितियों को देख सकते हैं (प्रोसेस आईडी के साथ या बिना)। वही स्थिति जानकारी समवर्ती प्रबंधक प्रशासित करें फॉर्

  1. Redis Sentinel: आपके Redis डिप्लॉयमेंट के लिए सरल उच्च-उपलब्धता Redis Sentinel: आपके Redis डिप्लॉयमेंट के लिए सरल उच्च-उपलब्धता

    Redis Sentinel Redis के लिए एक सरल और स्वचालित उच्च उपलब्धता (HA) समाधान प्रदान करता है। यदि आप इस बात से परिचित हैं कि MongoDB चुनाव कैसे काम करते हैं, तो यह उससे बहुत दूर नहीं है। शुरू करने के लिए, आपके पास N संख्या में स्लेव्स को रेप्लिकेट करने वाला एक दिया गया मास्टर है। वहां से, आपके पास Sentin