JavaScript Async
- صفحه قبلی JS Promise
- صفحه بعدی مقدمه DOM
"async and await make promises easier to write"
async تابع را برای بازگشت Promise آماده میکند
await تابع را برای انتظار Promise آماده میکند
نحوه استفاده از Async
کلمات کلیدی قبل از تابع 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
کلمات کلیدی قبل از تابع await
تابع را برای انتظار Promise آماده میکند:
let value = await promise;
await
کلمات کلیدی فقط میتوانند async
در داخل یک تابع استفاده میشود.
مثال
بیایید به آرامی یاد بگیریم که چگونه از آن استفاده کنیم.
آموزش پایه
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();
پشتیبانی مرورگر
ECMAScript 2017 کلمه کلیدی JavaScript را معرفی کرده است async
و await
.
در جدول زیر نسخههای اولیه مرورگرهایی که هر دو را به طور کامل پشتیبانی میکنند ذکر شده است:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
دسامبر 2016 | آوریل 2017 | مارس 2017 | سپتامبر 2017 | دسامبر 2016 |
- صفحه قبلی JS Promise
- صفحه بعدی مقدمه DOM