溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JavaScript異步函數(shù)怎么使用

發(fā)布時間:2022-03-03 16:29:16 來源:億速云 閱讀:154 作者:iii 欄目:web開發(fā)

這篇文章主要介紹了JavaScript異步函數(shù)怎么使用的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇JavaScript異步函數(shù)怎么使用文章都會有所收獲,下面我們一起來看看吧。

  異步函數(shù)

  異步函數(shù)(async function)是 ECMAScript 2017 (ECMA-262) 標(biāo)準(zhǔn)的規(guī)范,幾乎被所有瀏覽器所支持,除了 Internet Explorer。

  在 Promise 中我們編寫過一個 Promise 函數(shù):

  實例

  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();

  哈!這豈不是將異步操作變得像同步操作一樣容易了嗎!

  這次的回答是肯定的,異步函數(shù) async function 中可以使用 await 指令,await 指令后必須跟著一個 Promise,異步函數(shù)會在這個 Promise 運行中暫停,直到其運行結(jié)束再繼續(xù)運行。

  異步函數(shù)實際上原理與 Promise 原生 API 的機(jī)制是一模一樣的,只不過更便于程序員閱讀。

  處理異常的機(jī)制將用 try-catch 塊實現(xiàn):

  實例

  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

關(guān)于“JavaScript異步函數(shù)怎么使用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“JavaScript異步函數(shù)怎么使用”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI