`done` 承诺语义混淆,可能导致未捕获的承诺拒绝
作者: golergka创建于 2024年7月18日更新于 2025年11月5日
您的功能请求是否与一个问题有关?请描述。
done 许可目前的工作方式会导致我们无法捕获错误。我们以以下代码为例:
try {
const tx = db.transaction(storeName, "readwrite");
await tx.store.add(value);
await tx.done;
} catch (error) {
console.error(error); // 我们期望在此处捕获错误
}从文档和对代码工作方式的简单直觉来看,我预期如果添加操作失败,我将捕获错误。然而,当我在 Jest 中触发此失败时,我收到了以下结果:
内容来源: jakearchibald/idb