Javascript 使用 async 聲明符和 await 操做符進行異步操做

  • async function 聲明用於定義一個返回 AsyncFunction 對象的異步函數
  • await  操做符用於等待一個Promise 對象。它只能在異步函數 async function 中使用

語法:express

[return_value] = await expression;

* 屬於ES7語法,目前不被瀏覽器支持瀏覽器

使用注意:異步

1. await 必須在 async 聲明的函數體中才能使用async

2. await 後面只能是Promise對象,若是等待的不是 Promise 對象,則返回該值自己函數

3. await 等待Promise對象必須 resolve,不然函數體將不會繼續執行spa

4. async 僅僅影響當前函數體code

 

示例:orm

異步獲取用戶信息對象

function getUserInfo(){ return new Promise((resolve, reject) => { setTimeout(() => { resolve('user information ...') },3000); }) } async function init(){ console.log('start of init') var info = await getUserInfo() console.log(info) console.log('end of init') } init() console.log('end of script')

執行結果:blog

執行async聲明函數時,若是函數體內有await操做符的異步函數時:

1. 整個腳本會跳過異步操做繼續執行後面的代碼

2. async函數體內 await操做符後續的代碼會等待 await標記的異步操做完成再執行

相關文章
相關標籤/搜索