来试试 被try catch 包装的await, 下面的内容还会等待他嘛

49 阅读1分钟
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, '不管你在执行的多快 任务挂起了 你后面的也比我慢')

运行结果: 跟你想的一样嘛?

image.png

  • 这里试了一下 不管有没有try catch 后面该等的还是要等,该阻塞还是要阻塞,可以正常取到await的值
  • 至于抛出异常报错的位置,看这个异常触发的场景