Почему не отображаются ошибки в разрешении обещаний dexie?

Если я сделаю это с открытой консолью разработчика, я увижу сообщение об ошибке в консоли:

new Promise((resolve, reject) => {
    resolve();
}).then(() => {
    throw new Error('Error in vanilla promise');
});

Однако, если я сделаю это, я ничего не увижу в консоли:

const query = db.streams.where('id').equals(stream.id);

return db.mycollection.where('id').equals(someId).delete()
    .then(() => {
        throw new Error('Error in dexie callback');
    });

Я могу добавить следующее, а затем я вижу, что первая ошибка сообщается дважды (один раз тем, что уже сообщало об этом, и один раз от этого слушателя), а вторая ошибка сообщается один раз (от этого слушателя):

window.addEventListener('unhandledrejection', ev => {
    console.error('unhandledrejection', ev.reason);
});

Почему эти два разные? Есть ли у меня способ получить последовательную обработку ошибок, независимо от того, исходит ли первоначальное обещание от dexie или нет?

Я использую dexie 2.0.4

0 ответов

Другие вопросы по тегам