JS:Uncaught (in promise) DOMExceptionエラーとsetTimeout

JavaScriptロゴ JavaScript

JavaScriptで作ったWebアプリ上で音を鳴らそうとした際に、

Uncaught (in promise) DOMException

というエラーが出たので色々と検索するとtry~catch文ではこのエラーをキャッチできないとの事で、以下のような対処方法が載っていた。

setTimeout(function(){
	audio.play();	// 音を鳴らす部分
}, 0);

多くのサイトでsetTimeoutのミリ秒引数部分が、0かあるいは10ミリ秒くらいの短い時間で指定されていた。
しかし何度やっても同じエラーが出てしまうので、少し余裕を持たせた方がいいのかもしれないと思い1000ミリ秒に変更するとすんなり動くようになった。

setTimeout(function(){
	audio.play();	// 音を鳴らす部分
}, 1000);

わたしの作成したアプリでは、上記時間を500ミリ秒に変更しても問題なく動作していた。

どうやら「Uncaught (in promise) DOMException」エラーには、動作時間も影響するようだ。

コメント

タイトルとURLをコピーしました