async
这个函数用来处理异步,,它作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思, 异步函数也就意味着该函数的执行不会阻塞后面代码的执行。
async test () {
console.log('test里面的输出的')
return 'test返回的数据'
}
调用的时候,直接用then
this.test().then(x => {
console.log(x)
})
这里可以看到async 修饰方法之后会返回一个Promise,就是处理异步。
await
await是等待的意思,那么它等待什么呢,它后面跟着什么呢?其实它后面可以放任何表达式,不过我们更多的是放一个返回promise 对象的表达式。注意await 关键字只能放到async 函数里面。
doubleAfter2seconds (num) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(2 * num)
}, 6000)
})
}
async testResult () {
let x = await this.doubleAfter2seconds(200)
console.log(x)
console.log(123)
},
created () {
this.testResult()
}
这里可以看到await 可以等待 函数执行后再执行下面的console.log方法