ప్రధాన కంటెంట్‌కు వెళ్లండి
మాడ్యూల్ 7 · 4లో పాఠం 2కోర్సులో 26/32~12 min
మాడ్యూల్ పాఠాలు (2/4)

సమకాలీకరించు / వేచి ఉండండి

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' }

బాణం అసమకాలీకరణ

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)` అసమకాలీకరణను నిర్వచించండి: సంఖ్యల యొక్క రెండు వాగ్దానాలను అందుకుంటుంది, వాటి మొత్తాన్ని తిరిగి ఇస్తుంది. రెండు సీక్వెన్షియల్ నిరీక్షణలను ఉపయోగించండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

ప్రతి ఒక్కటి వేచి ఉండండి, ఆపై a + bని తిరిగి ఇవ్వండి.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది