1 概念
async await是es7的新语法,async的作用是用它声明一个funciton 异步函数。而await是等待一个异步方法执行完成。它可以很好的替换promise中的then。
async可以返回一个promise对象,可以使用then方法添加回调函数,当函数执行的时候一旦遇到await就会先返回,等到异步执行完成,再接着执行函数体内后面的语句。
2 其他:
await 操作符用于等待一个 Promise 对象, 它只能在异步函数 async function 内部使用
获取的是Promise函数中resolve或者reject的值
实例1:
async created(){
let a = await http.$axios({url:'/home'})
let b = await http.$axios({url:'/data'})
console.log(a.data, b.data)
}
实例2:
const pt = function(){ return 'str'}
const pp = function(){ return 'df' }
async function funcAsy() {
const a = await 100
const dd = await pp();
const b = await new Promise((resolve, reject)=>{
setTimeout(function(){
resolve('3秒time')
}, 3000)
})
const c = await pt()
console.log(a, b, c, dd )
}
funcAsy()
// 运行结果是 3秒钟之后 ,输出 100 '3秒time' 'str' 'df'
// 为什么'df'在最后呢? 因为pp函数返回的不是Promise形式,不进行等待,异步处理。(只有promise形式才进行等待)