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

Main.js

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

        });
    });

上記のコード item_Codes は配列です。ここでは、データがロードされた後に配列を印刷する必要があります。しかし、配列を印刷しようとすると、null が表示されます。データが配列にロードされた後に配列を印刷するにはどうすればよいですか。

4

2 に答える 2

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 に答える