這篇文章主要介紹了JavaScript異步函數怎么使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇JavaScript異步函數怎么使用文章都會有所收獲,下面我們一起來看看吧。
異步函數
異步函數(async function)是 ECMAScript 2017 (ECMA-262) 標準的規范,幾乎被所有瀏覽器所支持,除了 Internet Explorer。
在 Promise 中我們編寫過一個 Promise 函數:
實例
function print(delay, message) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
console.log(message);
resolve();
}, delay);
});
}
然后用不同的時間間隔輸出了三行文本:
實例
print(1000, "First").then(function () {
return print(4000, "Second");
}).then(function () {
print(3000, "Third");
});
我們可以將這段代碼變得更好看:
實例
async function asyncFunc() {
await print(1000, "First");
await print(4000, "Second");
await print(3000, "Third");
}
asyncFunc();
哈!這豈不是將異步操作變得像同步操作一樣容易了嗎!
這次的回答是肯定的,異步函數 async function 中可以使用 await 指令,await 指令后必須跟著一個 Promise,異步函數會在這個 Promise 運行中暫停,直到其運行結束再繼續運行。
異步函數實際上原理與 Promise 原生 API 的機制是一模一樣的,只不過更便于程序員閱讀。
處理異常的機制將用 try-catch 塊實現:
實例
async function asyncFunc() {
try {
await new Promise(function (resolve, reject) {
throw "Some error"; // 或者 reject("Some error")
});
} catch (err) {
console.log(err);
// 會輸出 Some error
}
}
asyncFunc();
如果 Promise 有一個正常的返回值,await 語句也會返回它:
實例
async function asyncFunc() {
let value = await new Promise(
function (resolve, reject) {
resolve("Return value");
}
);
console.log(value);
}
asyncFunc();
程序會輸出:
Return value
關于“JavaScript異步函數怎么使用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“JavaScript異步函數怎么使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。