JavaScript Async
"async and await make promises easier to write"
اسکینکرونز تابع را به promise بازگردانید:
ایوائٹ تابع را به انتظار promise بگذارید:
نحوه استفاده از Async
کلمات کلیدی قبل از تابع اسکینکرونز
تابع را به promise بازگردانید:
مثال
async function myFunction() { return "Hello"; }
معادل:
async function myFunction() { return Promise.resolve("Hello"); }
در اینجا روشهای استفاده از Promise آورده شده است:
myFunction().then( function(value) { /* کد زمانی که موفق میشود */ }, function(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
کلمات کلیدی قبل از تابع ایوائٹ
تابع را به انتظار promise بگذارید:
let value = await promise;
ایوائٹ
کلمات کلیدی فقط میتوانند اسکینکرونز
در داخل تابع استفاده میشود.
مثال
بیایید به آرامی یاد بگیریم که چگونه از آن استفاده کنیم.
زبان پایه
async function myDisplay() { let myPromise = new Promise(function(myResolve, myReject) { myResolve("I love You !!"); }); document.getElementById("demo").innerHTML = await myPromise; } myDisplay();
ترجیح میدهم به تاخیر بیفتد
async function myDisplay() { let myPromise = new Promise(function(myResolve, myReject) { setTimeout(function() { myResolve("I love You !!"); }, 3000); }); document.getElementById("demo").innerHTML = await myPromise; } myDisplay();
ترجیح میدهم فایل را
async function getFile() { let myPromise = new Promise(function(myResolve, myReject) { let req = new XMLHttpRequest(); req.open('GET', "mycar.html"); req.onload = function() { if (req.status == 200) {myResolve(req.response);} else {myResolve("File not Found");} }; req.send(); }); document.getElementById("demo").innerHTML = await myPromise; } getFile();
سپورٹ براؤزر
ای سی ایم اے اسکریپٹ 2017 نے جسٹا اسکریپٹ کا کلیدی الفاظ لایا اسکینکرونز
اور ایوائٹ
.
موجودہ جدول میں دونوں کو پورا پورا پشتیبند بنانے والی پہلی براؤزر کی نسخے کو ملاحظہ کیاجاتا ہے:
کروم | آئی ای | فائر فاکس | سافری | آپریا |
---|---|---|---|---|
کروم 55 | ایج 15 | فائر فاکس 52 | سافری 11 | آپریا 42 |
2016 ستمبر 12 | 2017 اپریل 4 | 2017 مارچ 3 | 2017 ستمبر 9 | 2016 ستمبر 12 |