這篇文章主要介紹了JavaScript異步函數(shù)怎么使用的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇JavaScript異步函數(shù)怎么使用文章都會(huì)有所收獲,下面我們一起來看看吧。
在井陘礦等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需規(guī)劃網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),全網(wǎng)整合營銷推廣,外貿(mào)網(wǎng)站制作,井陘礦網(wǎng)站建設(shè)費(fèi)用合理。
異步函數(shù)
異步函數(shù)(async function)是 ECMAScript 2017 (ECMA-262) 標(biāo)準(zhǔn)的規(guī)范,幾乎被所有瀏覽器所支持,除了 Internet Explorer。
在 Promise 中我們編寫過一個(gè) Promise 函數(shù):
實(shí)例
function print(delay, message) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
console.log(message);
resolve();
}, delay);
});
}
然后用不同的時(shí)間間隔輸出了三行文本:
實(shí)例
print(1000, "First").then(function () {
return print(4000, "Second");
}).then(function () {
print(3000, "Third");
});
我們可以將這段代碼變得更好看:
實(shí)例
async function asyncFunc() {
await print(1000, "First");
await print(4000, "Second");
await print(3000, "Third");
}
asyncFunc();
哈!這豈不是將異步操作變得像同步操作一樣容易了嗎!
這次的回答是肯定的,異步函數(shù) async function 中可以使用 await 指令,await 指令后必須跟著一個(gè) Promise,異步函數(shù)會(huì)在這個(gè) Promise 運(yùn)行中暫停,直到其運(yùn)行結(jié)束再繼續(xù)運(yùn)行。
異步函數(shù)實(shí)際上原理與 Promise 原生 API 的機(jī)制是一模一樣的,只不過更便于程序員閱讀。
處理異常的機(jī)制將用 try-catch 塊實(shí)現(xiàn):
實(shí)例
async function asyncFunc() {
try {
await new Promise(function (resolve, reject) {
throw "Some error"; // 或者 reject("Some error")
});
} catch (err) {
console.log(err);
// 會(huì)輸出 Some error
}
}
asyncFunc();
如果 Promise 有一個(gè)正常的返回值,await 語句也會(huì)返回它:
實(shí)例
async function asyncFunc() {
let value = await new Promise(
function (resolve, reject) {
resolve("Return value");
}
);
console.log(value);
}
asyncFunc();
程序會(huì)輸出:
Return value
關(guān)于“JavaScript異步函數(shù)怎么使用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“JavaScript異步函數(shù)怎么使用”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。