Javascript IndexedDB中的两个查询

Javascript IndexedDB中的两个查询,javascript,windows-8,cordova,indexeddb,Javascript,Windows 8,Cordova,Indexeddb,我对这个代码有问题 function checklistAntesdesalirUsuario() { if (plataforma == plataformaW8) { while (db == null) db = abrirDB(); var transactionUsuario = db.transaction(storeCLAntesDeSalirUsuarioNombre, "readonly"); var transaction = db

我对这个代码有问题

function checklistAntesdesalirUsuario() {

if (plataforma == plataformaW8) {
    while (db == null)
        db = abrirDB();

    var transactionUsuario = db.transaction(storeCLAntesDeSalirUsuarioNombre, "readonly");
    var transaction = db.transaction(storeCLAntesDeSalirNombre, "readonly");

    var objectStoreAntesDeSalirUsuario = transactionUsuario.objectStore(storeCLAntesDeSalirUsuarioNombre);
    var objectStoreAntesDeSalir = transaction.objectStore(storeCLAntesDeSalirNombre);

    var requestUsuario = objectStoreAntesDeSalirUsuario.openCursor();
    var request = objectStoreAntesDeSalir.openCursor();

    var cursor;
    var cursorUsuario;
    var count = 0;
    var i = 0;
    var cargadoUsuarios = false;

    var queryChecklistAntesdesalirUsuario = new Array();

    request.onsuccess = function (evt)
    {
        cursor = evt.target.result;
        seguir();
    };

    request.onerror = function(evt)
    {
        console.log("ERROR!");
    }
    requestUsuario.onsuccess = function (evt2)
    {
        cursorUsuario = evt2.target.result;
        cargadoUsuarios = true;
        seguir();
    };
    requestUsuario.onerror = function(evt)
    {
        console.log("ERROR!");
    }

    function seguir()
    {
        if (!cursor || !cargadoUsuarios)
         return;

        if (cursorUsuario && cursor.value.id_check == cursorUsuario.value.id_check) {

            cursorUsuario.continue();
        }
        else  {
            cursor.continue();
        }

        if (cursor && cursorUsuario && cursor.value.id_check == cursorUsuario.value.id_check) {
            var antesdesalir = new CLFinal(cursor.value.id_check, cursor.value.descripcioncheck, cursorUsuario.value.tarearealizada);
            queryChecklistAntesdesalirUsuario[i] = antesdesalir;
            i++;
            pintarListaChecklistAntesdesalirUsuario(queryChecklistAntesdesalirUsuario);
        }
    }
}
我尝试的是从两个存储器中获取数据。有时“cursor”获取数据,当“cursor.continue()”执行时是正常的,但有时会崩溃

我不知道该怎么办

有人能帮我吗?
谢谢

你能解释一下你想完成什么吗

为什么是2笔交易?你可以用它做任何事。只需打开范围中包含两个objectstores的事务

为什么有两个游标?您只能使用一个,并通过使用get在第二个对象存储中检索所需的值。您可以在主键上或使用索引执行此操作

var transaction = db.transaction([storeCLAntesDeSalirUsuarioNombre, storeCLAntesDeSalirNombre], "readonly");

var objectStoreAntesDeSalirUsuario = transaction.objectStore(storeCLAntesDeSalirUsuarioNombre);
var objectStoreAntesDeSalir = transaction.objectStore(storeCLAntesDeSalirNombre);

我尝试打开这两个ObjectStore,但没有结果。你能给我举个例子吗?谢谢我在帖子中添加了一个例子