vue中async/await的用法
async 异步请求
意思不阻碍其它代码继续往下执行
async function timeout() {
return 'hello word';
}
console.log(timeout());
console.log('虽然在后面,但是我先执行');
可以看到,console.log(timeout()); 输出的是一个Promise对象,还是先输出的
Promise 我们要得到他的结果用 then方法 或关键字 await 意思是等他执行完的意思
async function timeout() {
return 'hello word';
}
timeout().then(result => {
console.log(result);
})
console.log('虽然在后面,但是我先执行');
我们获取到了"hello world',同时timeout的执行也没有阻塞后面代码的执行,和我们刚才说的一致。
async函数(timeout)的调用,确实返回promise 对象,并且Promise 还有status和value,如果async 函数中有返回值 ,当调用该函数时,内部会调用Promise.solve() 方法把它转化成一个promise 对象作为返回
Promise有一个resolved 和 rejec函数
async function timeout(flag) {
if (flag) {
return 'hello world'
} else {
throw 'my god, failure'
}
}
console.log(timeout(true)) // 调用Promise.resolve() 返回promise 对象。
console.log(timeout(false)); // 调用Promise.reject() 返回promise 对象。
resolved 成功返回提意思吧
rejected 拒绝,返回错误的间思
可以用 catch 方法来捕获错误
timeout(false).catch(err => {
console.log(err)
})