2012-01-12 76 views
3

我正在使用Sencha Touch为Phonegap &编写应用程序。我有我的viewport.js文件与Sencha接口和databasesFunctions.js与所有数据库和请求函数。使用WebSQL进行回调(Phonegap)

我想打电话给该行viewport.js:

if(launchRequest('SELECT * from items',nombreItems)) alert('there are items'); 

这里是简化的功能:

function launchRequest(requete,callback){ 
    var db = openDatabase('database', '1.0', 'database', 2 * 1024 * 1024); 

    db.transaction(function (tx) { 

     tx.executeSql(requete,[], 
     function (tx, results) {   
      return callback(results.rows.length); 
     }); 

    }); 
} 
function nombreItems(num) {return num;} 

我不知道如何让我的函数的返回值。通常情况下,我的函数结尾有一个返回值(在标准SQL中),但是在这里,结果会传送到另一个函数。

回答

3

这段代码会执行你所要求的,因为WebSQL接口是异步的,你不能“返回”值。

launchRequest('SELECT * from items',nombreItems); 

function launchRequest(requete,callback){ 
    var db = openDatabase('database', '1.0', 'database', 2 * 1024 * 1024); 

    db.transaction(function (tx) { 

     tx.executeSql(requete,[], 
     function (tx, results) {   
      callback(results.rows.length); 
     }); 

    }); 
} 
function nombreItems(num) { 
    if(num){ 
     alert('there are items'); 
    } 
}