మాడ్యూల్ పాఠాలు (2/4)
సమకాలీకరించు / వేచి ఉండండి
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' }బాణం అసమకాలీకరణ
const double = async (n) => n * 2;
double(5); // Promise { 10 }దీనిని ప్రయత్నించండి
సంఖ్య యొక్క వాగ్దానాన్ని స్వీకరించి, సంఖ్యను (ప్రామిస్గా) అందజేసే `async ఫంక్షన్ addOne(p)`ని నిర్వచించండి + 1. వేచి ఉండండి ఉపయోగించండి.
సూచనను చూపించు
const n = నిరీక్షించు p; తిరిగి n + 1;
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది
వ్యాయామం సమీక్షించండి
`sumTwo(pa, pb)` అసమకాలీకరణను నిర్వచించండి: సంఖ్యల యొక్క రెండు వాగ్దానాలను అందుకుంటుంది, వాటి మొత్తాన్ని తిరిగి ఇస్తుంది. రెండు సీక్వెన్షియల్ నిరీక్షణలను ఉపయోగించండి.
సూచనను చూపించు
ప్రతి ఒక్కటి వేచి ఉండండి, ఆపై a + bని తిరిగి ఇవ్వండి.
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది