无法显示数组

时间:2013-11-14 04:59:48

标签: javascript

  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;
        }

Main.js

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

        });
    });

在上面的代码中,item_Codes是array.Here我需要在加载数据后打印数组。但是当我尝试打印数组时,它显示为null。在将数据加载到阵列后,如何打印阵列。

2 个答案:

答案 0 :(得分:1)

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

queryDB(function(arr){
  console.log(arr);
});

答案 1 :(得分: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;
}

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