- IndexedDB Tutorial
- IndexedDB - Home
- IndexedDB - Introduction
- IndexedDB - Installation
- IndexedDB - Connection
- IndexedDB - Object Stores
- IndexedDB - Creating Data
- IndexedDB - Reading Data
- IndexedDB - Updating Data
- IndexedDB - Deleting Data
- Using getAll() Functions
- IndexedDB - Indexes
- IndexedDB - Ranges
- IndexedDB - Transactions
- IndexedDB - Error Handling
- IndexedDB - Searching
- IndexedDB - Cursors
- IndexedDB - Promise Wrapper
- IndexedDB - Ecmascript Binding
- IndexedDB Useful Resources
- IndexedDB - Quick Guide
- IndexedDB - Useful Resources
- IndexedDB - Discussion
IndexedDB - Promise 包装器
Promise与回调一样,是一种告诉您希望代码在异步操作完成后执行什么操作的技术,而无需停止 JavaScript 的运行时线程。
可以使用 Promise 代替向异步函数提供回调以在其完成后运行。
Promise 库由 Jake Archibald 创建,它使用 Promise 而不是事件。
它比传统的 IndexedDB 更容易使用。它简化了 API,同时仍然保持其结构。
在这里,我们仅展示了为什么我们可以使用 Promised 库的增强功能,要了解更多信息,您可以访问以下网站 -
它有一些增强功能 -
- IDB数据库
- IDB交易
- IDB游标
IDB数据库
从对象存储中获取或设置的快捷方式
const value = await db.get(storeName, key); await db.put(storeName, value, key);
从索引获取的快捷方式
const value = await db.getFromIndex(storeName, indexName, key);
IDB交易
TX.商店
如果交易是单个商店,则商店属性引用该商店,否则它是未定义的,那么我们使用
const tx = db.transaction('any transaction'); const store = tx.store; tx.objectStore(storeName);
发送完成
当交易成功完成时, .done 承诺会解析,否则会因交易错误而拒绝。
const tx = db.transaction(storeName, 'readwrite'); await Promise.all([ tx.store.add('one', 'two'), tx.store.put('three', 'four'), tx.done, ]);
IDB游标
光标前进方法是 -
- 进步
- 继续
- 继续主键
它们向游标返回一个承诺,否则返回 null。
let cursor = await db.transaction(storeName).store.openCursor(); while (cursor) { document.write(cursor.key, cursor.value); cursor = await cursor.continue(); }