async function gg() {
console.log('第一名')
var timeOut = new Date().getTime() + parseInt(1000, 10);
while (new Date().getTime() <= timeOut) { }
//为了控制台效果更加明显一点 我们来一个强制延迟
return 1
}
async function zz() {
const result = await gg()
console.log(1234)
return result
}
async function reulst() {
const result = await zz()
console.log(result)
return result
}
async function reulst2() {
var result, result1
try {
result1 = await z()
} catch (err) {
result1 = err + '错误'
}
console.log(result1 + "\n这里的结果一定是上面运行完了\n")
try {
result = await zz()
} catch (err) {
result = err + '错误'
}
console.log(result + "\n这里的结果一定是上面运行完了\n" + result1)
}
reulst()
reulst2()
console.log(1111, '不管你在执行的多快 任务挂起了 你后面的也比我慢')
运行结果: 跟你想的一样嘛?
- 这里试了一下 不管有没有try catch 后面该等的还是要等,该阻塞还是要阻塞,可以正常取到await的值
- 至于抛出异常报错的位置,看这个异常触发的场景