索引数据库游标

IndexedDB cursors

本文关键字:游标 数据库 索引      更新时间:2023-11-05

我的问题很简单。我无法理解 MDN 文章中关于从 IndexedDB 迭代结果的示例。具体来说,我看不到任何用于迭代的循环。没有为/同时/做循环。下面是示例:

function displayData() {
  var transaction = db.transaction(['rushAlbumList'], "readonly");
  var objectStore = transaction.objectStore('rushAlbumList');
  objectStore.openCursor().onsuccess = function(event) {
    var cursor = event.target.result;
    if(cursor) {
       var listItem = document.createElement('li');
       listItem.innerHTML = cursor.value.albumTitle + ', ' + cursor.value.year;
       list.appendChild(listItem);  
       cursor.continue();
    } else {
       console.log('Entries all displayed.');
    }
  };
};

"循环"隐式发生。游标的每次成功前进都会导致一个"成功"事件,该事件将触发对分配给请求的"onsuccess"属性的处理程序的调用。因此,迭代的发生是因为这一行:

cursor.continue();