使用WebSQL进行回调(Phonegap)

Callback with WebSQL (Phonegap)

本文关键字:Phonegap 回调 WebSQL 使用      更新时间:2023-09-26

我正在用Phonegap&Sencha Touch。我有一个带有Sencha接口的viewport.js文件和带有所有数据库和请求函数的databasesFunctions.js。

我想在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中),但在这里,结果会传输到另一个函数。

这段代码将按照您的要求执行,因为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');
    }
}