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) })