有没有办法在调用IndexedDB的objectStore.delete时获取有关已删除记录的信息?

时间:2013-06-16 21:25:17

标签: html5 google-chrome firefox internet-explorer-10 indexeddb

当我从objectStore执行delete()时,该事件似乎没有与已删除记录相关的信息。它没有给我回键,甚至没有任何确认删除的东西(除了调用成功回调)。 event.target.resultundefined

有没有办法给我一些信息?

console.dir(event)

Event
    bubbles: false
    cancelBubble: false
    cancelable: false
    clipboardData: undefined
    currentTarget: null
    defaultPrevented: false
    eventPhase: 0
    returnValue: true
    srcElement: IDBRequest
    target: IDBRequest
        error: null
        onerror: function () { [native code] }
        onsuccess: function deleteNext(event)
        readyState: "done"
        result: undefined
        source: IDBObjectStore
        transaction: IDBTransaction
        webkitErrorMessage: undefined
        __proto__: IDBRequest
    timeStamp: 1371417349691
    type: "success"
    __proto__: Event

2 个答案:

答案 0 :(得分:1)

我不明白......

如果从删除操作中输入onsuccess回调,则表示成功。在所有其他情况下,您将进入onerror回调。

你为什么要回来?

如果在SQL数据库中执行delete语句,则也不会返回任何内容......

答案 1 :(得分:0)

原谅我的语言,但WTF?显然,没有(至少标准的)方式来获取有关删除操作的任何信息。事实上,你甚至不知道它是否成功

来自Mozilla:

  

根据规范,对象存储删除操作算法的结果是未定义的,因此通过查看请求结果无法知道某些记录是否实际被删除

来自规范: http://www.w3.org/TR/IndexedDB/#object-store-deletion-operation

  

此算法的结果未定义。

这似乎是主要失败。数据库如何甚至不承认操作的成功或失败?!