indexedDB highest keypath

后端 未结 2 1219
不思量自难忘°
不思量自难忘° 2021-01-23 13:50

I have a database inside indexedDB filled using an Emberjs adapter. I have set the keypath like this:

this.addModel(App.Device, { keyPath: \'key\' });

2条回答
  •  旧时难觅i
    2021-01-23 14:13

    Use objectStore.openKeyCursor with the direction "prev":

    const openCursorRequest = store.openKeyCursor(null, 'prev')
    openCursorRequest.onsuccess = () => {
      const cursor = openCursorRequest.result
      const maxKey = cursor && cursor.key
      // use maxKey...
    }
    

    Using Promise:

    const getMaxKey = (db, storeName) => new Promise((resolve, reject) => {
      const tx = db.transaction(storeName, 'readonly')
      const store = tx.objectStore(storeName)
      const openCursorRequest = store.openKeyCursor(null, 'prev')
      openCursorRequest.onsuccess = () => {
        const cursor = openCursorRequest.result
        resolve(cursor && cursor.key)
      }
      openCursorRequest.onerror = () => {
        reject(openCursorRequest.error)
      }
    })
    

提交回复
热议问题