es6中,await用於等待一個promise的非同步請求,非同步操作完成後恢復async函數的執行,該關鍵字只能在「async function」中使用,語法為「async function(){ await=傳回promise的非同步請求}」。
本教學操作環境: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 對象,它也可以跟其他值,如字串,布林值,數值以及普通函數。
【相關推薦:javascript影片教學、web前端】
以上是es6的await用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!