es6中,await用于等待一個promise的異步請求,異步操作完成后恢復async函數(shù)的執(zhí)行,該關鍵字只能在“async function”中使用,語法為“async function(){await=返回promise的異步請求}”。
本教程操作環(huán)境:windows10系統(tǒng)、ECMAScript 6.0版、Dell G3電腦。
es6的await用法是什么
語法為:
async function(){await=返回promise的異步請求}
await 是個運算符,用于組成表達式,await 表達式的運算結(jié)果取決于它等的東西。如果它等待的是一個 Promise 對象,等 Promise 對象 resolve,然后得到 resolve 的值,作為 await 表達式的運算結(jié)果。sync 函數(shù)調(diào)用不會造成阻塞,它內(nèi)部所有的阻塞都被封裝在一個 Promise 對象中異步執(zhí)行。
async 函數(shù)中可能會有 await 表達式,async 函數(shù)執(zhí)行時,如果遇到 await 就會先暫停執(zhí)行 ,等到觸發(fā)的異步操作完成后,恢復 async 函數(shù)的執(zhí)行并返回解析值。
await 關鍵字僅在 async function 中有效。如果在 async function 函數(shù)體外使用 await ,你只會得到一個語法錯誤。
返回值
返回 Promise 對象的處理結(jié)果。如果等待的不是 Promise 對象,則返回該值本身。
如果一個 Promise 被傳遞給一個 await 操作符,await 將等待 Promise 正常處理完成并返回其處理結(jié)果。
示例如下:
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 對象,它也可以跟其他值,如字符串,布爾值,數(shù)值以及普通函數(shù)。
【