मेरे पास दो async
फ़ंक्शन हैं। वे दोनों दो 3 सेकंड फ़ंक्शन कॉल की प्रतीक्षा कर रहे हैं। लेकिन दूसरा एक पहले से तेज है। मुझे लगता है कि तेजी से एक समानांतर में चल रहा है और दूसरे धारावाहिक में चल रहा है। क्या मेरी धारणा सही है? यदि हां, यह क्यों हो रहा है क्योंकि दोनों कार्य तर्कसंगत रूप से समान दिखते हैं?सीरियल और समानांतर में एसिंक/प्रतीक्षा कैसे काम कर रहा है?
function sleep() {
return new Promise(resolve => {
setTimeout(resolve, 3000);
});
}
async function serial() {
await sleep();
await sleep();
}
async function parallel() {
var a = sleep();
var b = sleep();
await a;
await b;
}
serial().then(() => {
console.log("6 seconds over");
});
parallel().then(() => {
console.log("3 seconds over");
});
आपको लगता है कि 'setTimeout' async क्यों है? फ़ंक्शन घोषणाओं को छोड़कर आपके कोड में async कुछ भी नहीं है। – Mjh
@Mjh Errm, 'setTimeout' इसकी प्रकृति असीमित है ... और ओपी के कोड में बहुत कुछ और भी अतुल्यकालिक है ... – Frxstrem
@Frxstrem' setTimeout' को छोड़कर बिल्कुल समकालिक नहीं है। यह एक सिंक्रोनस फ़ंक्शन है जो ईवेंट लूप को बाद में फ़ंक्शन निष्पादित करने के लिए कहता है।यह एक * तंत्र * है, इस कोड में बिल्कुल अतुल्यकालिक नहीं है। विभिन्न निष्पादन संदर्भों में, कौन से दो चलती हिस्से अलग-अलग गति से आगे बढ़ रहे हैं? शून्य। इसलिए, यह कोड बिल्कुल async नहीं है। – Mjh