javascript - 使用 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;
};
解决方案
你将你的回报移入承诺中。
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;
});
});
};
推荐阅读
- c - 如何从字符串中获取最后一个字符
- azure - UserLastLogon - 导出
- go - 单一方法上的多个接收器
- python - 保存后“OSError:无法将文件解释为泡菜”
- java - 寻找回文数
- hadoop - 高可用性在 Hadoop 集群中不起作用
- powershell-7.0 - New-AzureADApplication RequiredResourceAccess
- javascript - 单击按钮发送 HTTP 请求时防止 HTML 页面重新加载 [更新]
- java - Android Studio 记住播放器进度
- node.js - 使用 MongoDB 和 Graphql 管理聊天室中的消息