Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.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 如何在HTML5中处理websql的结果集?_Javascript_Html_Web Sql - Fatal编程技术网

Javascript 如何在HTML5中处理websql的结果集?

Javascript 如何在HTML5中处理websql的结果集?,javascript,html,web-sql,Javascript,Html,Web Sql,我正在使用html5和javascript创建移动web应用程序。我有两个javascript文件。AttributesDatabase.js和AttributeView.js.From AttributeView.js我正在从AttributeDatabase.js调用一个函数,因为我正在执行一个select查询。现在查询结果应该转到AttributeView.js。但是Websql事务是异步调用,这就是它没有返回正确结果的原因。是否有任何方法来处理Websql结果。 如果有办法,请帮忙 已编

我正在使用html5和javascript创建移动web应用程序。我有两个javascript文件。AttributesDatabase.js和AttributeView.js.From AttributeView.js我正在从AttributeDatabase.js调用一个函数,因为我正在执行一个select查询。现在查询结果应该转到AttributeView.js。但是Websql事务是异步调用,这就是它没有返回正确结果的原因。是否有任何方法来处理Websql结果。 如果有办法,请帮忙

已编辑

AttributeView.js

var AttributeDAOObj = new AttributeDAO();

AttributeDAOObj.GetAttributeList();
alert(AttributeDAOObj.GetAttributeList());  //This alert is coming as undefined.   

AttributeDAO.js
this.GetAttributeList = function () {
    var baseDAOObj = new BaseDAO();
    var query = "SELECT AttributeName FROM LOGS";
    //  this.Successcalbackfromsrc = this.myInstance.Successcalback;
    var parm = { 'query': query, 'Successcalback': this.myInstance.Successcalback };
    baseDAOObj.executeSql(parm);
}

//To Create database and execute sql queries.
function BaseDAO() {
this.myInstance = this;
//Creating database
this.GetMobileWebDB = function () {
    if (dbName == null) {
        var dbName = 'ABC';
    }
    var objMobileWebDB = window.openDatabase(dbName, "1.0", dbName, 5 * 1024 * 1024);
    return objMobileWebDB;
}

//Executing queries and getting result 
this.executeSql = function (query) {
    var objMobileWebDB = this.myInstance.GetMobileWebDB();
    objMobileWebDB.transaction(function (transaction) {
 //In this transaction i m returning the result.The result value is coming.
        transaction.executeSql(query, [], function (transaction, result) { return result; }, this.Errorclback);
    });
}

}

问题在于您成功的回拨(如DCoder对您的问题的评论)

这是返回到哪里

因此,这就是如何做到这一点(或者至少是一种方法)

例如,您可以执行以下操作:

function (transaction,result){
   console.log("yes, I have some result, but this doesn't say anything, empty result gives also a result");
   // so check if there is a result:
    if (result != null && result.rows != null) {
       if (result.rows.length == 0) {
            // do something if there is no result
       }else{
            for ( var i = 0; i < result.rows.length; i++) {
                var row = result.rows.item(i);
                var id = result.rows.item(i).id; //supposing there is an id in your result
                console.log('Yeah! row id = '+id);
            }
        }
    }else{
       // do something if there is no result
    }
};
功能(事务、结果){
log(“是的,我有一些结果,但这并没有说明什么,空的结果也会给出一个结果”);
//因此,请检查是否有结果:
if(result!=null&&result.rows!=null){
如果(result.rows.length==0){
//如果没有结果,就做点什么
}否则{
对于(var i=0;i