मॉड्यूल पाठ (2/4)
async / प्रतीक्षा करें
async/await वादों के साथ काम करने के लिए एक स्पष्ट वाक्यविन्यास है: कोड इस तरह पढ़ता है
सिंक्रोनस कोड, लेकिन पर्दे के पीछे यह पिछले पाठ के समान ही वादों का उपयोग करता है।
async function
async हमेशा के साथ घोषित एक फ़ंक्शन एक वादा लौटाता है।
async function forty() {
return 40;
}
forty(); // Promise { 40 }
forty().then((v) => console.log(v)); // 40भले ही आप "सामान्य" मान लौटाते हैं, फ़ंक्शन इसे एक हल किए गए वादे में लपेट देता है।
await
async function के अंदर आप वादे से पहले await डाल सकते हैं: निष्पादन रोका हुआ है
जब तक वादा पूरा नहीं हो जाता, तब तक समाधान किए गए मूल्य के साथ जारी रहता है।
async function sum() {
const a = await Promise.resolve(10);
const b = await Promise.resolve(20);
return a + b; // 30
}.then शैली में समतुल्य (अधिक क्रियात्मक):
function sum() {
return Promise.resolve(10).then((a) => Promise.resolve(20).then((b) => a + b));
}await त्रुटियाँ फैलाता है
यदि वादा अस्वीकृत है, तो await त्रुटि को पुनः प्रदर्शित करता है। आप इसे सामान्य रूप से पकड़ सकते हैं
try/catch:
async function read() {
try {
const x = await Promise.reject(new Error('no'));
return x;
} catch (err) {
return 'error: ' + err.message;
}
}
read(); // Promise { 'error: no' }तीर async
const double = async (n) => n * 2;
double(5); // Promise { 10 }इसे अजमाएं
एक `async function addOne(p)` को परिभाषित करें जो एक संख्या का वादा प्राप्त करता है और संख्या + 1 (वादे के रूप में) लौटाता है। प्रतीक्षा का उपयोग करें।
संकेत दिखाएँ
स्थिरांक n = प्रतीक्षा पी; वापसी एन + 1;
3 प्रयासों के बाद समाधान उपलब्ध है
व्यायाम की समीक्षा करें
`sumTwo(pa, pb)` async को परिभाषित करें: संख्याओं के दो वादे प्राप्त करता है, उनका योग लौटाता है। दो अनुक्रमिक प्रतीक्षा का प्रयोग करें.
संकेत दिखाएँ
प्रत्येक की प्रतीक्षा करें, फिर a + b लौटाएँ।
3 प्रयासों के बाद समाधान उपलब्ध है