首页 > 解决方案 > 使用 javascript 返回 sqlite 事务

问题描述

我正在尝试使用 angularjs 创建一个服务,该服务在 sqlite db 上执行查询,然后在查询已执行或发生错误时返回。但该函数始终返回 null,因为它在事务完成之前返回变量 r。

如果查询已执行,我如何返回?谢谢

 this.Sql = function (query) {
        var db = connect(dbName);
        var r = null;

        db.transaction(function (transaction) {
            transaction.executeSql(query, [],
                function (tx, result) {
                    r = "ok";
                },
                function (error) {
                    r = "error";
                });
        });

        return r;
    };

标签: javascriptangularjssqlite

解决方案


你将你的回报移入承诺中。

this.Sql = function (query) {
var db = connect(dbName);
var r = null;

db.transaction(function (transaction) {
    transaction.executeSql(query, [],
        function (tx, result) {
            r = "ok";
            return r;
        },
        function (error) {
            r = "error";
            return r;
        });
    });
};

推荐阅读