Javascript 如何捕捉自动播放DomeException?

Javascript 如何捕捉自动播放DomeException?,javascript,exception,audio,promise,Javascript,Exception,Audio,Promise,当我在用户与页面交互之前尝试运行Audio.play()时,它会抛出一个错误: Uncaught(in promise)DOMException:play()失败,因为用户没有首先与文档交互 我怎样才能捕捉到异常,从而不乱丢控制台日志?我想尝试以编程方式加载音频并清除错误,但默认的JavaScript try/catch无法成功应用。来自: 一般来说,在调用HTMLMediaElement.play()时,给web作者的建议是不要假设对play()的调用总是成功的,并且总是处理play()返回的

当我在用户与页面交互之前尝试运行Audio.play()时,它会抛出一个错误:

Uncaught(in promise)DOMException:play()失败,因为用户没有首先与文档交互

我怎样才能捕捉到异常,从而不乱丢控制台日志?我想尝试以编程方式加载音频并清除错误,但默认的JavaScript try/catch无法成功应用。

来自:

一般来说,在调用HTMLMediaElement.play()时,给web作者的建议是不要假设对play()的调用总是成功的,并且总是处理play()返回的承诺被拒绝

因为play()返回一个承诺,所以我们可以链接一个调用来处理错误:

Audio.play().catch(error => {
  // Autoplay was blocked. Do something
})

try/catch不起作用吗?我试过try/catch块,但不起作用。我在搜索中发现有一个承诺,它显然可以被捕获,但我还没有看到具体的实现方法。如果可以使用
.catch()
,它可能是承诺。