Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数不等待从phoneGap中的数据库获取值_Javascript_Jquery_Cordova_Web Sql - Fatal编程技术网

Javascript 函数不等待从phoneGap中的数据库获取值

Javascript 函数不等待从phoneGap中的数据库获取值,javascript,jquery,cordova,web-sql,Javascript,Jquery,Cordova,Web Sql,我有一个简单的函数,它在从SQLite数据库获取数据后返回一个数组。但是,它返回未定义的错误 为了检查问题,我使用了3个警报警报1、警报2和警报3。逻辑上应该有一个类似于警报1->警报2->警报3的序列,但序列是警报1->警报3->警报2 这意味着它不会等待获取数据 function farzigetType() { alert('alert 1'); var arr = []; var qselecttype = "SELECT * FROM " + TABLE_OP_

我有一个简单的函数,它在从SQLite数据库获取数据后返回一个数组。但是,它返回未定义的错误

为了检查问题,我使用了3个警报警报1、警报2和警报3。逻辑上应该有一个类似于警报1->警报2->警报3的序列,但序列是警报1->警报3->警报2

这意味着它不会等待获取数据

function farzigetType() {
    alert('alert 1');
    var arr = [];
    var qselecttype = "SELECT * FROM " + TABLE_OP_TYPE;;

    db.transaction(function (trans) {
        trans.executeSql(qselecttype, [],
            function (transaction, result) {

                if (result != null && result.rows != null) {
                    for (i = 0; i < result.rows.length; i++) {
                        var row = result.rows.item(i);    

                        person = new Object();
                        person.id = row.id;
                        person.op_val = row.op_val;
                        person.op_type = row.op_type;

                        arr.push(person);

                        //alert('select optype from'+TABLE_OP_TYPE+'=='+person.op_val+'--'+person.op_type);    
                    }

                    alert('alert 2');

                    return arr;    
                }
            }, errorHandler);
    }, errorHandler, nullHandler);    

    alert('alert 3');    
}

创建一个回调函数,返回数组,为executeSql语句分配不同的errorHandler函数,并查看失败的是事务还是executeSql。这将有助于追踪这个问题。