访问IndexedDb中光标外部的光标中设置的变量

时间:2019-03-28 10:01:46

标签: javascript indexeddb

我想在游标对象外部打印在游标中设置的变量“ set”的值。

      request.onsuccess = function(e){
      var set = 0;
      var transaction = db.transaction(['List'], "readonly");
      var objectStore = transaction.objectStore('List');

      objectStore.openCursor().onsuccess = function(event) {
        var cursor = event.target.result;
        if(cursor) {
        // console.log(cursor.value.Name);
        if (cursor.value.Name == $('#card').val())
        {
          console.log("aisa kabhi hoga hi nahi");
          set = 1;
        }

          cursor.continue();
        } 
        else 
        {
          console.log('Entries all displayed.');
          if (set == 0)
          {
             set= ippp();
             console.log(set);

          }
        }
      };
      console.log(set);
      }

当我在光标内打印我的设置变量时,如图“打印正确的数据”。

但是,当我尝试在光标外部打印变量“ set”的数据时,我最初声明的值将被打印。 “当我重置光标中的变量值时,怎么可能?”

我的问题是如何在游标对象之外的游标内访问设置为变量“ set”的值。

1 个答案:

答案 0 :(得分:0)

在使用indexedDB之前,您需要了解异步编程。真正的答案是去学习。

不过,作为快速解答,您可以使用回调函数。

function outerFunction(myCallbackFunction) {
  // do stuff
  request.onsuccess = function(event) {
    var cursor = event.target.value;

    var value = cursor.value;

    // Here is the whole trick to getting the value out. Pass the value to the 
    // callback function.
    myCallbackFunction(value);
  };
}

// Then to call it, you do something like this, where 'oncompleted' 
// is the name of the callback function

outerFunction(function oncompleted(value) {
  console.log('The value is', value);
});