Oboe.jsを使用して、非常に大きな JSON ファイルを解析しています
const promises = [];
oboe('http://domain/my-file.js')
.node('items.*', item => {
// parseItem() returns a rejected Promise because of invalid JSON items
promises.push(parseItem(item));
})
.done(() => {
Promise.all(promises).then(() => {
doSomething();
});
})
しかし、私のブラウザコンソールはUncaught (in promise)
. setTimeout()
likeに promise を書いた場合も同様です。
const promises = [];
setTimeout(() => {
promises.push(Promise.reject());
}, 500);
// some time in the future
Promise.all(promises);
本当に奇妙なのは、最新のブラウザーの動作が異なることです。Firefox Developer Edition ではすべてがエラー メッセージなしで機能し、Chrome では大量のUncaught (in promise)
. Promise.reject();
Chrome では、キャッチなしで書くとすぐにメッセージが表示されます。Firefox と Safari では何も起こりません。
それで、これに対する解決策は何ですか?メッセージを無視しますか?つまり、この動作が実際に公式の promise 仕様にある場合、非同期コードの promise は私にとって本当に意味がありません。