原来async 函数返回的是一个promise 对象,如果要获取到promise 返回值,我们应该用then 方法, 继续修改代码。
async function timeout() {
return ‘hello world’
}
timeout().then(result => {
console.log(result);
})
console.log(‘虽然在后面,但是我先执行’);
我们获取到了"hello world’, 同时timeout 的执行也没有阻塞后面代码的执行,和 我们刚才说的一致。
这时,你可能注意到控制台中的Promise 有一个resolved,这是async 函数内部的实现原理。如果async 函数中有返回一个值 ,当调用该函数时,内部会调用Promise.solve() 方法把它转化成一个promise 对象作为返回,但如果timeout 函数内部抛出错误呢? 那么就会调用Promise.reject() 返回一个promise 对象, 这时修改一下timeout 函数。
async function timeout(flag) {
if (flag) {
return ‘hello world’
} else {