జావాస్క్రిప్ట్ అసమకాలీకరణను స్పష్టం చేస్తోంది/సమయంలో ప్రవర్తన కోసం వేచి ఉండండి
ఆధునిక జావాస్క్రిప్ట్ అభివృద్ధిలో, సమకాలీకరించు/నిరీక్షించు అసమకాలిక కోడ్ని నిర్వహించడానికి అవసరమైన సాధనంగా మారింది. దాని ఉపయోగం ఉన్నప్పటికీ, చాలా మంది డెవలపర్లు ఈ పద్ధతులను ఉపయోగించి ఫంక్షన్లలో అవుట్పుట్ల యొక్క ఖచ్చితమైన సమయాన్ని అంచనా వేయడానికి వచ్చినప్పుడు గందరగోళాన్ని ఎదుర్కొంటారు. అడాఫేస్ నుండి వచ్చిన కోడింగ్ అసెస్మెంట్లలో ఇది ప్రత్యేకంగా వర్తిస్తుంది, ఇక్కడ అసమకాలిక కార్యకలాపాల ప్రవాహాన్ని అర్థం చేసుకోవడం చాలా ముఖ్యం.
మీరు పని చేస్తున్న సమస్య సారూప్య ప్రవర్తనలతో రెండు అసమకాలిక ఫంక్షన్లను అందిస్తుంది, కానీ సమయ పరంగా భిన్నమైన ఫలితాలను అందిస్తుంది. మొదటి చూపులో, ఫంక్షన్లు రెండింటికీ 10 సెకన్లు పట్టవచ్చు, కానీ వాగ్దానాలు ఎలా పరిష్కరించబడతాయో లోతైన అవగాహన కలిగి ఉండటం వలన వాస్తవ సమాధానం చాలా మంది డెవలపర్లను ఆశ్చర్యపరుస్తుంది.
ఈ ఆర్టికల్ కోడ్ ద్వారా మిమ్మల్ని నడిపించడమే లక్ష్యంగా ఉంది, అది ఎలా ఉంటుందో విడదీస్తుంది సమకాలీకరణ మరియు వేచి ఉండండి మెకానిక్స్ పని, అలాగే వాగ్దాన తీర్మానం యొక్క క్రమం తుది ఫలితాన్ని ఎలా ప్రభావితం చేస్తుంది. దీని ముగిసే సమయానికి, అసమకాలిక జావాస్క్రిప్ట్లో టైమింగ్ ఎలా పనిచేస్తుందనే దానిపై మీకు స్పష్టమైన అవగాహన ఉండాలి.
మొదటి ఫంక్షన్ ఎందుకు అవుట్పుట్ అవుతుందో అర్థం చేసుకోవడానికి కోడ్లోకి ప్రవేశిద్దాం 24 5 సెకన్ల తర్వాత, మరియు రెండవ ఫంక్షన్ కూడా అవుట్పుట్ అవుతుంది 24 కానీ వేరే వాగ్దాన నిర్మాణంతో. ఈ పరిజ్ఞానంతో, మీ రాబోయే ఇంటర్వ్యూ అసెస్మెంట్ల కోసం మీరు మెరుగ్గా సన్నద్ధమవుతారు.
ఆదేశం | ఉపయోగం యొక్క ఉదాహరణ |
---|---|
సమయం ముగిసింది | setTimeout(() =>setTimeout(() => {res(x);}, 5000); ఈ కమాండ్ పేర్కొన్న ఆలస్యం తర్వాత ఒక ఫంక్షన్ను అమలు చేస్తుంది. ఈ సందర్భంలో, ఇది 5 సెకన్ల తర్వాత విలువను తిరిగి ఇవ్వడం ద్వారా అసమకాలిక ప్రవర్తనను అనుకరించడానికి ఉపయోగించబడుతుంది. |
కొత్త వాగ్దానం | return new Promise(res =>కొత్త వాగ్దానం (res => {...}); అసమకాలిక కోడ్ను చుట్టే కొత్త వాగ్దానాన్ని సృష్టిస్తుంది, ఇది అసమకాలీకరణ ఆపరేషన్ పూర్తయిన తర్వాత విలువలను పరిష్కరించడానికి లేదా తిరస్కరించడానికి అనుమతిస్తుంది. |
వేచి ఉండండి | const f = 5s(3) తర్వాత వేచి ఉండండి; వాగ్దానం పరిష్కరించబడే వరకు అసమకాలిక ఫంక్షన్ అమలును పాజ్ చేస్తుంది, కోడ్ అసమకాలిక ఫంక్షన్లో సమకాలీకరించేలా చేస్తుంది. |
అసమకాలీకరణ ఫంక్షన్ | async ఫంక్షన్ mult(ఇన్పుట్) {...} వినియోగాన్ని అనుమతించే అసమకాలిక ఫంక్షన్ను ప్రకటిస్తుంది వేచి ఉండండి లోపల అసమకాలిక కార్యకలాపాలను శుభ్రంగా మరియు చదవగలిగే విధంగా నిర్వహించడానికి. |
అప్పుడు | mult(2).then(value =>mult(2).అప్పుడు(విలువ => {...}); వాగ్దానానికి కాల్బ్యాక్ జతచేస్తుంది. వాగ్దానం పరిష్కరించబడినప్పుడు, కాల్బ్యాక్ పరిష్కరించబడిన విలువతో అమలు చేయబడుతుంది. |
సమ్మతి వాగ్దానం | const f = after5s(3); const g = after5s(4); ఇది రెండు వాగ్దానాలను సమాంతరంగా అమలు చేయడానికి అనుమతిస్తుంది, ఒకదానిని ప్రారంభించే ముందు ఒకటి పరిష్కరించడానికి వేచి ఉండదు, తద్వారా పనితీరు మెరుగుపడుతుంది. |
console.log | console.log(విలువ); డీబగ్గింగ్ లేదా ఫలితాల తనిఖీ ప్రయోజనాల కోసం కన్సోల్కు విలువను అవుట్పుట్ చేస్తుంది. |
res | res(x); కోసం ఒక సంక్షిప్తలిపి పరిష్కరించండి వాగ్దానాలలో, వాగ్దానాన్ని పూర్తి చేసినట్లు గుర్తించి, విలువను తిరిగి ఇవ్వమని అంటారు. |
input * wait f | రిటర్న్ ఇన్పుట్ * నిరీక్షించు f * నిరీక్షించు g; రెండు అసమకాలిక కార్యకలాపాల యొక్క పరిష్కరించబడిన విలువలతో ఇన్పుట్ను గుణిస్తుంది, గణనను నిర్వహించడానికి ముందు రెండు వాగ్దానాలు పరిష్కరించబడతాయని నిర్ధారిస్తుంది. |
జావాస్క్రిప్ట్లో అసమకాలిక కార్యకలాపాలను అన్వేషించడం
అందించిన స్క్రిప్ట్లు జావాస్క్రిప్ట్లో అసమకాలిక కార్యకలాపాల శక్తిని ప్రదర్శిస్తాయి సమకాలీకరణ మరియు వేచి ఉండండి కీలకపదాలు. ఆలస్యమైన కార్యకలాపాలు వంటి అసమకాలిక పనులను సమర్థవంతంగా నిర్వహించడం ప్రధాన ఆలోచన. రెండు ఉదాహరణలలో, ఫంక్షన్ 5సె(x) తర్వాత విలువతో పరిష్కరించబడే వాగ్దానాన్ని తిరిగి ఇవ్వడం ద్వారా 5 సెకన్ల ఆలస్యాన్ని అనుకరిస్తుంది x. ఆపరేషన్ల క్రమాన్ని మరియు ఫంక్షన్ యొక్క ప్రవాహంతో వాగ్దానాలు ఎలా సంకర్షణ చెందుతాయో అర్థం చేసుకోవడానికి ఈ ఆలస్యం అవసరం.
మొదటి ఫంక్షన్లో, బహుళ (ఇన్పుట్), కోడ్ రెండు వాగ్దానాల పరిష్కారం కోసం వరుసగా వేచి ఉంటుంది. ది వేచి ఉండండి వాగ్దానం తిరిగి వచ్చే వరకు కోడ్ అమలును పాజ్ చేస్తుందని కీవర్డ్ నిర్ధారిస్తుంది తర్వాత 5సె(3) పరిష్కరించబడింది. తర్వాత, మొదటి వాగ్దానం పరిష్కరించబడిన తర్వాత, రెండవ వాగ్దానం కోసం కోడ్ మరో 5 సెకన్లు వేచి ఉంటుంది తర్వాత 5సె(4) పరిష్కరించడానికి. ఇది గణన చేయడానికి ముందు మొత్తం 10 సెకన్ల నిరీక్షణకు దారి తీస్తుంది. రెండు పరిష్కరించబడిన విలువల ద్వారా ఇన్పుట్ యొక్క గుణకారం తుది అవుట్పుట్ను ఇస్తుంది.
రెండవ విధి, second_mult(ఇన్పుట్), రెండు వాగ్దానాలను ఏకకాలంలో ప్రారంభించడం ద్వారా పనితీరును మెరుగుపరుస్తుంది. కేటాయించడం ద్వారా తర్వాత 5సె(3) మరియు తర్వాత 5సె(4) దరఖాస్తు చేయడానికి ముందు వేరియబుల్స్కు వేచి ఉండండి, రెండు వాగ్దానాలు సమాంతరంగా నడుస్తాయి. కోడ్ చేరుకున్నప్పుడు వేచి ఉండండి ప్రకటనలు, ఇది రెండు వాగ్దానాల పరిష్కారం కోసం వేచి ఉంది, కానీ అవి ఇప్పటికే పురోగతిలో ఉన్నాయి, మొత్తం నిరీక్షణ సమయాన్ని కేవలం 5 సెకన్లకు తగ్గిస్తాయి. ఈ ఏకకాల అమలు అసమకాలిక కార్యకలాపాలను ఆప్టిమైజ్ చేయడం యొక్క ప్రాముఖ్యతను హైలైట్ చేస్తుంది.
ఈ స్క్రిప్ట్లు అసమకాలిక కోడ్ను క్లీన్గా హ్యాండిల్ చేయడానికి ఏసింక్ మరియు వెయిట్ ఎలా ఉపయోగించవచ్చో ప్రదర్శిస్తాయి. ఎసిన్క్రోనస్ టాస్క్లను ఏకకాలంలో లేదా వరుసగా ఎప్పుడు అమలు చేయాలో అర్థం చేసుకోవడం పనితీరును ఆప్టిమైజ్ చేయడానికి కీలకం. ది రెండవ_మల్ట్ ఫంక్షన్ యొక్క విధానం అనవసరమైన జాప్యాలను నివారించడం యొక్క ప్రయోజనాన్ని చూపుతుంది, అయితే ఆపరేషన్లు నిర్దిష్ట క్రమంలో జరిగినప్పుడు మొదటి ఉదాహరణ ఉపయోగపడుతుంది. రెండు ఉదాహరణలు వాస్తవ-ప్రపంచ దృశ్యాలలో విస్తృతంగా వర్తిస్తాయి వాగ్దానం నిర్వహణ APIల నుండి డేటాను పొందడం లేదా బాహ్య వనరులపై ఆధారపడిన కార్యకలాపాలను నిర్వహించడం వంటివి అవసరం.
జావాస్క్రిప్ట్ టైమింగ్లో అసమకాలిక/నిరీక్షణ ప్రవర్తన వివరించబడింది
ఈ ఉదాహరణ జావాస్క్రిప్ట్ ఉపయోగించి అసమకాలిక కార్యకలాపాలను ప్రదర్శిస్తుంది సమకాలీకరణ మరియు వేచి ఉండండి విధులు.
function after5s(x) {
return new Promise(res => {
setTimeout(() => {
res(x);
}, 5000);
});
}
// First approach using async/await with sequential waits
async function mult(input) {
const f = await after5s(3);
const g = await after5s(4);
return input * f * g;
}
// Calling the function and handling the promise resolution
mult(2).then(value => {
console.log(value); // Output: 24 after 10 seconds
});
సమకాలీకరణను ఆప్టిమైజ్ చేయడం/కాకరెంట్ ఎగ్జిక్యూషన్ కోసం వేచి ఉండండి
కోడ్ యొక్క ఈ సంస్కరణ ప్రతి వాగ్దానానికి వరుసగా వేచి ఉండకుండా ఉండటానికి వాగ్దానం సమ్మతిని ఉపయోగించి అసమకాలీకరణ ప్రక్రియను ఆప్టిమైజ్ చేస్తుంది.
function after5s(x) {
return new Promise(res => {
setTimeout(() => {
res(x);
}, 5000);
});
}
// Second approach optimizing by starting both promises concurrently
async function second_mult(input) {
const f = after5s(3); // Starts promise immediately
const g = after5s(4); // Starts second promise concurrently
return input * await f * await g;
}
// Calling the function and handling the promise resolution
second_mult(2).then(value => {
console.log(value); // Output: 24 after 5 seconds
});
జావాస్క్రిప్ట్లో అసమకాలిక నమూనాలను మాస్టరింగ్ చేయడం
ఆధునిక జావాస్క్రిప్ట్లోని అత్యంత ముఖ్యమైన భావనలలో ఒకటి అసమకాలిక పనులను ఎలా సమర్థవంతంగా నిర్వహించాలి. కాగా ది సమకాలీకరించు/నిరీక్షించు సింటాక్స్ అసమకాలిక కోడ్ యొక్క రీడబిలిటీని సులభతరం చేస్తుంది, డెవలపర్లు పరిగణించవలసిన ఇతర అంశాలు కూడా ఉన్నాయి. Async ఫంక్షన్లను ఉపయోగించడంలో కీలకమైన అంశం JavaScript ఎలా నిర్వహిస్తుందో అర్థం చేసుకోవడం ఈవెంట్ లూప్ మరియు అసమకాలిక కాల్ స్టాక్. ఈవెంట్ లూప్, వాగ్దానాలు వంటి నాన్-బ్లాకింగ్ టాస్క్లను క్యూలో ఉంచడం ద్వారా మరియు ఇతర కోడ్ అమలును కొనసాగించడం ద్వారా ఒకే-థ్రెడ్ వాతావరణంలో కూడా బహుళ టాస్క్లను ఏకకాలంలో అమలు చేయడానికి JavaScriptని అనుమతిస్తుంది.
అసమకాలిక కార్యకలాపాలలో తరచుగా పట్టించుకోని అంశం లోపం నిర్వహణ. అసమకాలిక/వెయిట్ సింటాక్స్ని ఉపయోగించడం ద్వారా, డెవలపర్లు తమ కోడ్ను aలో చుట్టవచ్చు ప్రయత్నించండి...పట్టుకోండి వాగ్దాన తిరస్కరణలు మరియు ఇతర లోపాలను సునాయాసంగా నిర్వహించడానికి నిరోధించండి. ఈ పద్ధతి అసమకాలిక ఆపరేషన్లో సంభవించే ఏవైనా లోపాలు ప్రోగ్రామ్ యొక్క ప్రవాహాన్ని విచ్ఛిన్నం చేయకుండా క్యాచ్ చేయబడి, నిర్వహించబడతాయని నిర్ధారిస్తుంది. అసమకాలిక విధులు పనితీరును మెరుగుపరచడమే కాకుండా సంక్లిష్ట దోష నిర్వహణను మరింత సమర్థవంతంగా మరియు డీబగ్ చేయడానికి సులభంగా చేస్తాయి.
దృష్టి సారించే మరో ముఖ్య ప్రాంతం ఎలా ప్రామిస్.అన్నీ బహుళ వాగ్దానాలను ఏకకాలంలో నిర్వహించడానికి ఉపయోగించవచ్చు. మొదటి ఉదాహరణలో వలె వరుసగా వాగ్దానాల కోసం ఎదురుచూడకుండా, ప్రామిస్.అన్నీ అన్ని వాగ్దానాలను ఏకకాలంలో అమలు చేస్తుంది, శ్రేణిలో ఫలితాలను అందిస్తుంది. బహుళ API కాల్లు చేస్తున్నప్పుడు లేదా అమలు చేసే క్రమం క్లిష్టంగా లేని అనేక పనులను చేసేటప్పుడు ఈ పద్ధతి చాలా ఉపయోగకరంగా ఉంటుంది. సరైన మరియు స్కేలబుల్ జావాస్క్రిప్ట్ కోడ్ను వ్రాయడానికి ఉమ్మడి పనులను ఎలా సరిగ్గా రూపొందించాలో అర్థం చేసుకోవడం చాలా ముఖ్యం.
జావాస్క్రిప్ట్లో ఎసింక్/వెయిట్పై తరచుగా అడిగే ప్రశ్నలు
- ప్రయోజనం ఏమిటి async జావాస్క్రిప్ట్లో?
- ది async కీవర్డ్ ఒక ఫంక్షన్ను వాగ్దానాన్ని తిరిగి ఇవ్వడానికి అనుమతిస్తుంది మరియు దాని వినియోగాన్ని అనుమతిస్తుంది await ఫంక్షన్ లోపల.
- ఏమి చేస్తుంది await కీవర్డ్ చేయండి?
- ది await కీవర్డ్ వాగ్దానం పరిష్కరించబడే వరకు ఫంక్షన్ ఎగ్జిక్యూషన్ను పాజ్ చేస్తుంది, అసమకాలిక టాస్క్లను మరింత సమకాలికంగా నిర్వహించవచ్చని నిర్ధారిస్తుంది.
- అసమకాలిక కోడ్ అమలును JavaScript ఎలా నిర్వహిస్తుంది?
- జావాస్క్రిప్ట్ ఉపయోగిస్తుంది event loop అసమకాలిక పనులను నిర్వహించడానికి, సింగిల్-థ్రెడ్ వాతావరణంలో కూడా కోడ్ అమలును నిరోధించకుండా అనుమతిస్తుంది.
- సీక్వెన్షియల్ మరియు కాకరెంట్ ఎసిన్క్ ఎగ్జిక్యూషన్ మధ్య తేడా ఏమిటి?
- సీక్వెన్షియల్ ఎగ్జిక్యూషన్లో, ప్రతి await ఫంక్షన్ను పాజ్ చేస్తుంది, అయితే ఏకకాల అమలులో, అన్ని వాగ్దానాలు ఏకకాలంలో అమలవుతాయి, వేచి ఉండే సమయాన్ని తగ్గిస్తాయి.
- ఎసింక్/వెయిట్లో ఎర్రర్ హ్యాండ్లింగ్ ఎలా పని చేస్తుంది?
- తో try...catch, అసమకాలిక ఫంక్షన్లలో లోపాలు క్యాచ్ చేయబడతాయి మరియు నిర్వహించబడతాయి, ప్రోగ్రామ్ క్రాష్ కాకుండా నిరోధిస్తుంది.
జావాస్క్రిప్ట్లో ఎసిన్క్రోనస్ ఎగ్జిక్యూషన్ను చుట్టడం
జావాస్క్రిప్ట్లోని అసమకాలిక/వెయిట్ ఫంక్షనాలిటీ అనేది అసమకాలిక కార్యకలాపాలను నిర్వహించడానికి శక్తివంతమైన మార్గం, ఇది కోడ్ను మరింత చదవగలిగేలా మరియు సమర్థవంతంగా చేస్తుంది. అందించిన ఉదాహరణలలో, ఉపయోగం వేచి ఉండండి సరైన సీక్వెన్స్ హ్యాండ్లింగ్ని నిర్ధారిస్తుంది, మొదటి ఉదాహరణ వాగ్దానాలను వరుసగా అమలు చేస్తుంది మరియు రెండవది వాటిని ఏకకాలంలో అమలు చేస్తుంది.
వాగ్దానాలు ఎలా పరిష్కరిస్తాయనే ప్రాముఖ్యతను గుర్తించడం ద్వారా, డెవలపర్లు అనవసరమైన జాప్యాలను నివారించవచ్చు మరియు వారి అప్లికేషన్ పనితీరును మెరుగుపరచవచ్చు. APIలు లేదా సంక్లిష్ట అసమకాలిక టాస్క్లతో వ్యవహరించినా, ఈ లక్షణాలను ప్రభావితం చేయడం వలన కార్యాచరణ మరియు కోడ్ స్పష్టత రెండింటిలోనూ గణనీయమైన మెరుగుదలలను అందించవచ్చు.
సూచనలు మరియు బాహ్య మూలాలు
- ఈ కథనం అధికారి నుండి సమాచారాన్ని ఉపయోగించింది MDN వెబ్ డాక్స్ అసమకాలీకరణ/నిరీక్షణలో ఉంది , ఇది జావాస్క్రిప్ట్లో అసమకాలిక ప్రోగ్రామింగ్పై సమగ్ర మార్గదర్శిని అందిస్తుంది.
- జావాస్క్రిప్ట్ ఇంటర్వ్యూ అసెస్మెంట్లపై మరిన్ని వివరాల కోసం, Adaface JavaScript ఆన్లైన్ పరీక్ష ఇంటర్వ్యూలలో ఉపయోగించే సాంకేతిక పరీక్షల వాస్తవ ప్రపంచ ఉదాహరణలను అందించడం ద్వారా సంప్రదించబడింది.