图片来源于网络
1、 async函数返回一个 Promise 对象。
async function f() {
return 'hello world';
}
f().then(v => console.log(v))
// "hello world"
2、async函数内部抛出错误,会导致返回的 Promise 对象变为reject状态。抛出的错误对象会被catch方法回调函数接收到。
async function f() {
throw new Error('出错了');
}
f().then(
v => console.log(v),
e => console.log(e)
)
// Error: 出错了
3、只有async函数内部的异步操作执行完,才会执行then方法指定的回调函数。
//网络请求
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
}
// 调用
getData().then(
v => console.log(v),
e => console.log(e)
)
4、如果我们希望即使前一个异步操作失败,也不要中断后面的异步操作。这时可以将第一个await放在try...catch结构里面,这样不管这个异步操作是否成功,第二个await都会执行。
参考文摘: https://www.cnblogs.com/zczhangcui/p/6642144.html
网友评论