Javascript 如何捕捉自动播放DomeException?
当我在用户与页面交互之前尝试运行Audio.play()时,它会抛出一个错误: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()返回的
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()
,它可能是承诺。