async和await的使用

2021-09-24 11:09:19 字數 1360 閱讀 6444

async其實是es7的才有的,是非同步操作的進化,其實就是封裝乙個promise的物件返回

async function test()

console.log(test()) //promise

async方法在普通的函式前加上"async"關鍵字即可。執行這個函式,發現並沒有返回1111,而是通過promise.resolved()將1111封裝成了乙個promise物件返回。既然是返回的promise物件,就可以用then方法來處理。

test().then(res=>)
await

yield關鍵字只能使用在generator函式中,同樣,await關鍵字也不能單獨使用,需要使用在async方法中。 await字面意思是"等待",它是在等待後面表示式的執行結果。

function testwait(), 1000);})}

async function test()

test() // 依次列印出 testwait hello

await的作用,就是阻塞主函式的執行,直到後面的promise函式返回結果

await後面不單單只能是乙個promise物件,可以是字串,布林值,數值以及普通函式

function testwait(), 1000);

}async function test()

test() // 依次列印出 hello testwait

通過上面的例子 我們可以得知

1、await後面如果是乙個promise物件,await會阻塞主函式的執行,等待 promise 物件 resolve,然後得到 resolve 的值,作為 await 表示式的運算結果,然後繼續執行主函式接下來的**。

2、await後面如果是非promise物件,await等待函式或者直接量的返回,而不是等待其執行結果。

應用場景

乙個完成的煮菜任務 需要按步驟來完成

//洗菜

function prepare(),100)

});

}//炒菜

function fired(),100)

});

}//吃飯

function eat(),100)

});}

async function task()

task(); //依次列印出: 開始準備 洗菜 炒菜 吃飯 完成

async和await的講解

普通的函式宣告 async function a 複製 宣告乙個函式表示式 let a async function 複製 async形式的箭頭函式 let a async 複製 async與await例項應用,基礎 控制器呼叫與server中查詢資料 exports.getbloglist asy...

async和await的講解

async和await的講解 宣告async函式的幾個方法 普通的函式宣告 async function a 宣告乙個函式表示式 let a async function async形式的箭頭函式 let a async 初識async和await async與await例項應用,基礎 控制器呼叫與...

await和async的機制

await 一般會和 async 一起使用,async 是非同步,await則是等待非同步的返回值。可以看下面的測試 public async task string call public async task int foo 執行結果 1 3 4 2這裡在await 後的方法執行完之後,才會向下...