在es6中,await用於等待一個promise的非同步請求,非同步操作完成後恢復async函數的執行,該關鍵字只能在「async function」中使用,語法為「async function(){await=傳回promise的非同步請求}」。
如何快速入門VUE3.0:進入學習
本教學操作環境:windows10系統、ECMAScript 6.0版、Dell G3電腦。
語法為:
async function(){await=傳回promise的非同步請求}
await 是個運算符,用於組成表達式,await 表達式的運算結果取決於它等的東西。如果它等待的是一個Promise 對象,等Promise 對象resolve,然後得到resolve 的值,作為await 表達式的運算結果。 sync 函數呼叫不會造成阻塞,它內部所有的阻塞都被封裝在一個Promise 物件中非同步執行。
async 函數中可能會有await 表達式,async 函數執行時,如果遇到await 就會先暫停執行,等到觸發的非同步操作完成後,恢復async 函數的執行並傳回解析值。
await 關鍵字僅在async function 中有效。如果在async function 函數體外使用await ,你只會得到一個語法錯誤。
傳回值
傳回Promise 物件的處理結果。如果等待的不是Promise 對象,則傳回該值本身。
如果一個Promise 被傳遞給一個await 操作符,await 將等待Promise 正常處理完成並傳回其處理結果。
範例如下:
function testAwait (x) { return new Promise(resolve => { setTimeout(() => { resolve(x); }, 2000); }); } async function helloAsync() { var x = await testAwait ("hello world"); console.log(x); } helloAsync (); // hello world
正常情況下,await 指令後面是一個Promise 對象,它也可以跟其他值,如字串,布林值,數值以及普通函數。