小编Fre*_*lex的帖子

等待 IndexedDB 中的 openCursor 完成

我有这个代码:

html5DB.indexedDB.addSomething = function(foo) {
    var db = html5DB.indexedDB.db;
    var trans = db.transaction(["something"], "readwrite");
    var store = trans.objectStore("something");

    var isExisting = IsAlreadyExist(foo);
    // How to wait for that instruction to finish?

    if (!isExisting){
       var request = store.put({
           "text": foo,
           "timeStamp" : new Date().getTime()
       });
    }
};
Run Code Online (Sandbox Code Playgroud)

我试图了解如何等待该函数IsAlreadyExist完成。此函数打开一个游标以在对象存储中进行迭代以确定特定值是否存在。

实际上,没有错误,但我无法访问其中的代码,if (!isExisting)因为变量的值永远不会改变。

这是第二个函数的代码:

function IsAlreadyExist(foo){
    var db = html5DB.indexedDB.db;
    var objectStore = db.transaction("something").objectStore("something");

    objectStore.openCursor().onsuccess = function(event) {
        var cursor = event.target.result;

        if (cursor) {
            if (cursor.value.text == foo)   
                return …
Run Code Online (Sandbox Code Playgroud)

html javascript indexeddb

1
推荐指数
1
解决办法
3562
查看次数

标签 统计

html ×1

indexeddb ×1

javascript ×1