जावास्क्रिप्ट एसिंक्स
"async और प्रतीक्षा करें वादों को लिखना आसान बनाते हैं"
async एक फ़ंक्शन को एक वादा लौटाता है
प्रतीक्षित एक समारोह को एक वादे के लिए प्रतीक्षा करता है
एसिंक्स सिंटैक्स
फ़ंक्शन से पहले कीवर्ड async
फ़ंक्शन को एक वादा देता है:
उदाहरण
async function myFunction() {
return "Hello";
}
वैसा ही है जैसा कि:
function myFunction() {
return Promise.resolve("Hello");
}
यहाँ वादा का उपयोग करने का तरीका बताया गया है:
myFunction().then(
function(value) { /* code if successful */ },
function(error) { /* code if some error */ }
);
उदाहरण
async function myFunction() {
return "Hello";
}
myFunction().then(
function(value) {myDisplayer(value);},
function(error) {myDisplayer(error);}
);
या सरल, चूंकि आप एक सामान्य मूल्य (एक सामान्य प्रतिक्रिया, त्रुटि नहीं) की अपेक्षा करते हैं:
उदाहरण
async function myFunction() {
return "Hello";
}
myFunction().then(
function(value) {myDisplayer(value);}
);
सिंटैक्स की प्रतीक्षा करें
फ़ंक्शन से पहले कीवर्ड await
फ़ंक्शन को वादे की प्रतीक्षा करता है:
let value = await promise;
कीवर्ड का उपयोग केवल फ़ंक्शन के await
अंदर ही किया जा सकता है
।async
उदाहरण
आइए धीरे-धीरे चलते हैं और सीखते हैं कि इसका उपयोग कैसे करना है।
मूल वाक्य रचना
async function myDisplay() {
let myPromise = new Promise(function(resolve, reject) {
resolve("I love You !!");
});
document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();
दो तर्क (समाधान और अस्वीकार) जावास्क्रिप्ट द्वारा पूर्व-परिभाषित हैं।
हम उन्हें नहीं बनाएंगे, लेकिन निष्पादक फ़ंक्शन तैयार होने पर उनमें से एक को कॉल करें।
बहुत बार हमें एक अस्वीकार समारोह की आवश्यकता नहीं होगी।
अस्वीकार किए बिना उदाहरण
async function myDisplay() {
let myPromise = new Promise(function(resolve) {
resolve("I love You !!");
});
document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();
एक टाइमआउट की प्रतीक्षा में
async function myDisplay() {
let myPromise = new Promise(function(resolve) {
setTimeout(function() {resolve("I love You !!");}, 3000);
});
document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();
फ़ाइल की प्रतीक्षा में
async function getFile() {
let myPromise = new Promise(function(resolve) {
let req = new XMLHttpRequest();
req.open('GET', "mycar.html");
req.onload = function() {
if (req.status == 200) {
resolve(req.response);
} else {
resolve("File not Found");
}
};
req.send();
});
document.getElementById("demo").innerHTML = await myPromise;
}
getFile();
ब्राउज़र समर्थन
ईसीएमएस्क्रिप्ट 2017 ने जावास्क्रिप्ट कीवर्ड
async
और await
.
निम्न तालिका दोनों के लिए पूर्ण समर्थन के साथ पहले ब्राउज़र संस्करण को परिभाषित करती है:
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
Dec, 2016 | Apr, 2017 | Mar, 2017 | Sep, 2017 | Dec, 2016 |