ماڈیول اسباق (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 فنکشن addOne(p)' کی وضاحت کریں جو ایک نمبر کا وعدہ وصول کرتا ہے اور نمبر + 1 (بطور وعدہ) واپس کرتا ہے۔ انتظار کا استعمال کریں۔
اشارہ دکھائیں۔
const n = انتظار p؛ واپسی n + 1؛
3 کوششوں کے بعد حل دستیاب ہے۔
ورزش کا جائزہ لیں۔
`sumTwo(pa, pb)` async کی وضاحت کریں: اعداد کے دو وعدے وصول کرتا ہے، ان کا مجموعہ لوٹاتا ہے۔ دو ترتیب وار انتظار کا استعمال کریں۔
اشارہ دکھائیں۔
ہر ایک کا انتظار کریں، پھر a + b واپس کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔