مرکزی مواد پر جائیں
ماڈیول 7 · سبق 2 از 4کورس میں 26/32~12 min
ماڈیول اسباق (2/4)

async / انتظار کریں۔

async/await وعدوں کے ساتھ کام کرنے کے لیے ایک واضح نحو ہے: کوڈ اس طرح پڑھتا ہے ہم وقت ساز کوڈ، لیکن پردے کے پیچھے یہ پچھلے سبق کی طرح بالکل وہی وعدے استعمال کرتا ہے۔

async function

async کے ساتھ اعلان کردہ فنکشن ہمیشہ ایک وعدہ واپس کرتا ہے۔

JS
async function forty() {
  return 40;
}

forty(); // Promise { 40 }
forty().then((v) => console.log(v)); // 40

یہاں تک کہ اگر آپ "نارمل" قدر واپس کرتے ہیں تو فنکشن اسے حل شدہ وعدے میں لپیٹ دیتا ہے۔

await

ایک async function کے اندر آپ وعدے سے پہلے await لگا سکتے ہیں: عملدرآمد موقوف ہے جب تک کہ وعدہ طے نہ ہو، پھر حل شدہ قیمت کے ساتھ جاری رہے۔

JS
async function sum() {
  const a = await Promise.resolve(10);
  const b = await Promise.resolve(20);
  return a + b; // 30
}

.then طرز میں مساوی (مزید لفظی):

JS
function sum() {
  return Promise.resolve(10).then((a) => Promise.resolve(20).then((b) => a + b));
}

await غلطیاں پھیلاتا ہے۔

اگر وعدہ مسترد کر دیا جاتا ہے، await غلطی کو دوبارہ ختم کرتا ہے۔ آپ اسے عام سے پکڑ سکتے ہیں۔ try/catch:

JS
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

JS
const double = async (n) => n * 2;
double(5); // Promise { 10 }

اسے آزمائیں

ورزش#js.m7.l2.e1
کوششیں: 0لوڈ ہو رہا ہے…

ایک 'async فنکشن addOne(p)' کی وضاحت کریں جو ایک نمبر کا وعدہ وصول کرتا ہے اور نمبر + 1 (بطور وعدہ) واپس کرتا ہے۔ انتظار کا استعمال کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

const n = انتظار p؛ واپسی n + 1؛

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش کا جائزہ لیں۔

ورزش#js.m7.l2.e2
کوششیں: 0لوڈ ہو رہا ہے…

`sumTwo(pa, pb)` async کی وضاحت کریں: اعداد کے دو وعدے وصول کرتا ہے، ان کا مجموعہ لوٹاتا ہے۔ دو ترتیب وار انتظار کا استعمال کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

ہر ایک کا انتظار کریں، پھر a + b واپس کریں۔

3 کوششوں کے بعد حل دستیاب ہے۔