
圖片來(lái)源于網(wǎng)絡(luò)
1、 async函數(shù)返回一個(gè) Promise 對(duì)象。
async function f() {
return 'hello world';
}
f().then(v => console.log(v))
// "hello world"
2、async函數(shù)內(nèi)部拋出錯(cuò)誤,會(huì)導(dǎo)致返回的 Promise 對(duì)象變?yōu)閞eject狀態(tài)。拋出的錯(cuò)誤對(duì)象會(huì)被catch方法回調(diào)函數(shù)接收到。
async function f() {
throw new Error('出錯(cuò)了');
}
f().then(
v => console.log(v),
e => console.log(e)
)
// Error: 出錯(cuò)了
3、只有async函數(shù)內(nèi)部的異步操作執(zhí)行完,才會(huì)執(zhí)行then方法指定的回調(diào)函數(shù)。
//網(wǎng)絡(luò)請(qǐng)求
function request(){
return $.ajax({
url:"./data.json",
type: 'post',
dataType: 'json',
success: function (data, status) {
return data
},
fail: function (err, status) {
return err
}
})
}
async function getData(){
let rquery = await request()
return rquery
}
// 調(diào)用
getData().then(
v => console.log(v),
e => console.log(e)
)