0
  var processResult = function(items)
{

    return  items;
};
    function queryDB(callback) {

            var sqlTxt = "SELECT * FROM DEMO";
            db.transaction(
                    function(tx) {
                        tx.executeSql(sqlTxt, [],
                                function(tx, results) {
                                    var item_Codes = [];
                                    for (var i = 0; i < results.rows.length; i++) {

                                        item_Codes.push({item_code: results.rows.item(i).itemCode});
                                    }
                                    callback(item_Codes);
                                })
                                , errorCB;
                    });
            return false;
        }

主.js

  queryDB(processResult, function(arr) {
            $.each(arr, function(i, elem) {

        });
    });

在上面的代码 item_Codes 是数组。这里我需要在加载数据后打印数组。但是当我尝试打印数组时它显示为空。数据加载到数组后如何打印数组。

4

2 回答 2

1

调用后不使用变量,而是使用调用中发送的回调函数中的参数:

queryDB(function(arr){
  console.log(arr);
});
于 2013-11-14T05:03:28.973 回答
0

你为什么不试试:

function queryDB(callback) {



   var sqlTxt = "SELECT * FROM DEMO";
    db.transaction(
            function(tx) {
                tx.executeSql(sqlTxt, [],
                        function(tx, results) {
                            var item_Codes = [];
                            for (var i = 0; i < results.rows.length; i++) {

                                item_Codes.push({item_code: results.rows.item(i).itemCode});
                            }
                            callback(item_Codes);
                        })
                        , errorCB;
            });
    console.log(item_codes);
    return false;
}

也就是说,我只是想在代码执行后打印出你的数组的值。

于 2013-11-14T05:09:24.880 回答