Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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 websql代码值未定义,尽管在其中存储了值_Javascript_Html - Fatal编程技术网

输出中的javascript websql代码值未定义,尽管在其中存储了值

输出中的javascript websql代码值未定义,尽管在其中存储了值,javascript,html,Javascript,Html,此代码显示两条警报消息,一条为7,另一条为未定义。如何在两个警报消息中获得值7 var db = openDatabase('tournament', '1.0', 'Scoring', 2 * 1024 * 1024); var msg; db.transaction(function (tx) { tx.executeSql("SELECT ballno FROM app_t20_balldetails order by ballno desc", [], function(tx,

此代码显示两条警报消息,一条为
7
,另一条为
未定义。如何在两个警报消息中获得值7

var db = openDatabase('tournament', '1.0', 'Scoring', 2 * 1024 * 1024);

var msg;
db.transaction(function (tx) {
tx.executeSql("SELECT ballno FROM app_t20_balldetails order by ballno desc", [],
    function(tx, result)
    {
      msg =  result.rows.item(0).ballno;
     alert(msg);
    });
});

 alert(msg);
这将帮助您在两个警报中获得相同的输出。 因为Websql API是异步的,所以您必须使用回调


使用JQuery不同的承诺,您可以在这里找到第二种方法的详细信息

您使用的WebSQL API是异步的。
db.transaction(…)
调用只准备执行事务,但不立即调用它。这与AJAX调用的原理基本相同,您需要使用回调。通读一遍,这会给你一个大致的想法。
var fetchBallNo = function (callback){

    var db = window.openDatabase('tournament', '1.0', 'Scoring', 2 * 1024 * 1024);

    var msg;
    db.transaction(function (tx) {
        tx.executeSql("SELECT ballno FROM app_t20_balldetails order by ballno desc", [],
                function(tx, result)
                {
            msg =  result.rows.item(0).ballno;
            alert(msg);
                });
    }, function(tx, error) {
        window.alert("Transaction Error: " + error + tx.message);
        callback(null);
    }, function(tx) {
        callback(msg);
    });
};

fetchBallNo(function(msg){
    if(msg) {
        window.alert(msg);
    } else {
        window.alert('Value not found');
    }
});