src/indexeddb.js
function (paths) {
    return new Promise((resolve, reject) => {

      let transaction = this.db.transaction(['nodes'], 'readonly');
      let nodes = transaction.objectStore('nodes');
      let retrievedNodes = {};

      this.getsRunning++;

      paths.map(function (path) {
        nodes.get(path).onsuccess = function (evt) {
          retrievedNodes[path] = evt.target.result;
        };
      });

      transaction.oncomplete = function () {
        resolve(retrievedNodes);
        this.getsRunning--;
      }.bind(this);

      transaction.onerror = transaction.onabort = function () {
        reject('get transaction error/abort');
        this.getsRunning--;
      }.bind(this);

    });
  }
function (paths) {
    return new Promise((resolve, reject) => {

      let transaction = this.db.transaction(['nodes'], 'readonly');
      let nodes = transaction.objectStore('nodes');
      let retrievedNodes = {};

      this.getsRunning++;

      paths.map(function (path) {
        nodes.get(path).onsuccess = function (evt) {
          retrievedNodes[path] = evt.target.result;
        };
      });

      transaction.oncomplete = function () {
        resolve(retrievedNodes);
        this.getsRunning--;
      }.bind(this);

      transaction.onerror = transaction.onabort = function () {
        reject('get transaction error/abort');
        this.getsRunning--;
      }.bind(this);

    });
  }
TODO: Document