語法: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標記的異步操做完成再執行