/ / जावास्क्रिप्ट में केवल async फ़ंक्शन में काम क्यों इंतजार कर रहा है? - जावास्क्रिप्ट, एसिंक्रोनस, एसिंक्स-वेट

जावास्क्रिप्ट में एसिंक फ़ंक्शन में केवल क्यों काम करता है? - जावास्क्रिप्ट, एसिंक्रोनस, async-await

बस इसी से गुजर रहा हूं ट्यूटोरियल, और यह मुझे समझने के लिए परेशान करता है await में ही काम करता है async समारोह।

ट्यूटोरियल से:

जैसा कि कहा गया है, इंतजार केवल async फ़ंक्शन के अंदर काम करता है।

मेरी समझ से, async फ़ंक्शन रिटर्न ऑब्जेक्ट को एक वादा में लपेटता है, इसलिए कॉलर उपयोग कर सकता है .then()

async function f() {
return 1;
}

f().then(alert); // 1

तथा await बस के भीतर बसने के वादे का इंतजार है async समारोह।

async function f() {

let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve("done!"), 1000)
});

let result = await promise; // wait till the promise resolves (*)

alert(result); // "done!"
}

f();

ऐसा लगता है कि उनका उपयोग संबंधित नहीं है, क्या कोई कृपया बता सकता है?

उत्तर:

जवाब के लिए 0 № 1

async तथा await दोनों मेटा कीवर्ड हैं जो अतुल्यकालिक कोड को एक तरह से लिखने की अनुमति देते हैं दिखता है तुल्यकालिक। एक async समारोह समय से पहले संकलक को बताता है कि फ़ंक्शन वापस आ जाएगा Promise और तुरंत एक मूल्य हल नहीं होगा। काम में लाना await और धागे को अवरुद्ध न करें async जरूर इस्तेमाल किया गया।

async function f() {
return await fetch("/api/endpoint");
}

के बराबर है

function f() {
return new Promise((resolve,reject) => {
fetch("/api/endpoint")
.then(resolve);
});
}