IDBCursor:continue() 方法
注意:此功能在Web Workers中可用。
continue()
方法是 IDBCursor
接口的方法,它将游标沿其方向移动到下一个位置,到其键与可选键参数匹配的项目。如果未指定键,则游标将根据其方向移动到紧邻的下一个位置。
语法
js
continue()
continue(key)
参数
key
可选-
要将游标定位到的键。
返回值
无(undefined
)。
异常
此方法可能会引发以下类型之一的 DOMException
TransactionInactiveError
DOMException
-
如果此 IDBCursor 的事务处于非活动状态,则抛出此异常。
DataError
DOMException
-
如果键参数具有以下任何条件,则抛出此异常
- 键不是有效的键。
- 键小于或等于此游标的位置,并且游标的方向为
next
或nextunique
。 - 键大于或等于此游标的位置,并且此游标的方向为
prev
或prevunique
。
InvalidStateError
DOMException
-
如果游标当前正在迭代或已迭代到其末尾,则抛出此异常。
示例
在这个简单的片段中,我们创建了一个事务,检索了一个对象存储,然后使用游标遍历对象存储中的所有记录。游标不需要我们根据键选择数据;我们只需获取所有数据即可。另请注意,在循环的每次迭代中,您可以使用 cursor.value.foo
从游标对象下的当前记录中获取数据。有关完整的示例,请参阅我们的 IDBCursor 示例(查看示例)。
js
function displayData() {
const transaction = db.transaction(["rushAlbumList"], "readonly");
const objectStore = transaction.objectStore("rushAlbumList");
objectStore.openCursor().onsuccess = (event) => {
const cursor = event.target.result;
if (cursor) {
const listItem = document.createElement("li");
listItem.textContent = `${cursor.value.albumTitle}, ${cursor.value.year}`;
list.appendChild(listItem);
cursor.continue();
} else {
console.log("Entries all displayed.");
}
};
}
规范
规范 |
---|
Indexed Database API 3.0 # ref-for-dom-idbcursor-continue① |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。
另请参阅
- 使用 IndexedDB
- 启动事务:
IDBDatabase
- 使用事务:
IDBTransaction
- 设置键范围:
IDBKeyRange
- 检索和修改数据:
IDBObjectStore
- 使用游标:
IDBCursor
- 参考示例:待办事项通知(查看示例)。