async表示函数里有异步操作,await表示紧跟在后面的表达式需要等待结果
// vue
methods: {
async getList() {
let res = await axios.get("http://mock/userlist");
this.data = res.data.userlist;
this.count = res.data.count;
}
}
在有嵌套请求的情况下,肯定是 async/await 更直观的
// promise
a(() => {
b(() => {
c()
})
})
// async/await
await a()
await b()
await c()
比如一个常见的业务场景:有两个并发的异步请求,在都完成后do something。但很多人会错误的用串行的方式实现了。
//错误
await a()
await b()
//这样变成了 a().then(() => b() )
// a 好了才会执行 b
done()
//正确
await Promise.all([a(), b()])
done()