function (cb) {
    return new Promise((resolve/*, reject*/) => {

      let transaction = this.db.transaction(['nodes'], 'readonly');
      let cursorReq = transaction.objectStore('nodes').openCursor();

      cursorReq.onsuccess = (evt) => {
        let cursor = evt.target.result;

        if (cursor) {
          cb(this.migrate(cursor.value));
          cursor.continue();
        } else {
          resolve();
        }
      };
    });
  }
function (cb) {
    return new Promise((resolve) => {

      let transaction = this.db.transaction(['nodes'], 'readonly');
      let cursorReq = transaction.objectStore('nodes').openCursor();

      cursorReq.onsuccess = (evt) => {
        let cursor = evt.target.result;

        if (cursor) {
          cb(this.migrate(cursor.value));
          cursor.continue();
        } else {
          resolve();
        }
      };
    });
  }
function ( cb ) { return new Promise ( ( resolve /*, reject*/ ) => { let transaction = this . db . transaction ( [ 'nodes' ] , 'readonly' ) ; let cursorReq = transaction . objectStore ( 'nodes' ) . openCursor ( ) ; cursorReq . onsuccess = ( evt ) => { let cursor = evt . target . result ; if ( cursor ) { cb ( this . migrate ( cursor . value ) ) ; cursor . continue ( ) ; } else { resolve ( ) ; } } ; } ) ; }
TODO: Document
TODO : Document