IDBRequest:error 属性

注意:此功能在Web Workers 中可用。

errorIDBRequest 接口的只读属性,在请求失败时返回错误。

如果无错误,则为 DOMExceptionnull。异常对象中返回以下错误名称

AbortError

如果您中止事务,则所有仍在进行中的请求都会收到此错误。

ConstraintError

如果您插入的数据不符合约束条件。它是用于创建存储和索引的异常类型。例如,如果您尝试添加一个已存在于记录中的新键,则会收到此错误。

QuotaExceededError

如果您用完了磁盘配额,并且用户拒绝为您提供更多空间。

UnknownError

如果操作失败的原因与数据库本身无关。由于磁盘 IO 错误导致的失败就是一个例子。

VersionError

如果您尝试打开的数据库版本低于其当前版本。

除了发送到 IDBRequest 对象的错误代码之外,异步操作也可能会引发异常。该列表描述了在执行请求时可能出现的错误,但在发出请求时您也可能遇到其他问题。例如,如果在请求未完成时访问结果,则会抛出 InvalidStateError 异常。

示例

以下示例请求给定记录标题 onsuccessIDBObjectStore(作为 objectStoreTitleRequest.result 提供)获取关联记录,更新记录的一个属性,然后将更新后的记录放回对象存储中。底部还包含一个 onerror 函数,如果请求失败,则报告错误是什么。有关完整的示例,请参阅我们的 待办事项通知 应用(查看示例)。

js
const title = "Walk dog";

// Open up a transaction as usual
const objectStore = db
  .transaction(["toDoList"], "readwrite")
  .objectStore("toDoList");

// Get the to-do list with the specified title
const objectStoreTitleRequest = objectStore.get(title);

objectStoreTitleRequest.onsuccess = () => {
  // Grab the data object returned as the result
  const data = objectStoreTitleRequest.result;

  // Update the notified value in the object to "yes"
  data.notified = "yes";

  // Create another request that inserts the item
  // back into the database
  const updateTitleRequest = objectStore.put(data);

  // When this new request succeeds, run the displayData()
  // function again to update the display
  updateTitleRequest.onsuccess = () => {
    displayData();
  };
};

objectStoreTitleRequest.onerror = () => {
  // If an error occurs with the request, log what it is
  console.log(
    `There has been an error with retrieving your data: ${objectStoreTitleRequest.error}`,
  );
};

规范

规范
Indexed Database API 3.0
# ref-for-dom-idbrequest-error①

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅