- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个大问题。我知道这是关于回调,关闭,但我不知道如何解决问题。这是我的代码
$.Model.extend('Article',
{
findAll : function(params, success, error){
var result = []
db.transaction(function(tx) {
tx.executeSql('select * from contents', [],function(tx, rs) {
for(var i=0; i<rs.rows.length; i++) {
var row = rs.rows.item(i)
result[i] = {
id: row['id'],
title: row['title'],
body: row['body']
}
}
})
})
//here result is undefined
alert(result)
return result
}
})
//undefined
var view = Article.findAll
我知道executeSql是异步函数,但是不知道executeSql的结果如何保存和返回。我使用 javascript mvc 和 HTML 离线数据库。
谢谢你的帮助
最佳答案
W3C 网络数据库规范讨论了对异步和同步数据库操作的支持。 (See 4.3 and 4.4)
如果您不能使用同步实现,那么您可能需要考虑像这样解决问题:
$.Model.extend('Article',
{
findAll : function(params, success, error){
var result = []
db.transaction(function(tx) {
tx.executeSql('select * from contents', [],function(tx, rs) {
for(var i=0; i<rs.rows.length; i++) {
var row = rs.rows.item(i)
result[i] = {
id: row['id'],
title: row['title'],
body: row['body']
}
}
success(result); //toss the result into the 'success' callback
})
})
//here result is undefined
alert(result)
return result
}
})
Article.findAll([], function(view) {
//...
}, function() {
//error occured
});
关于javascript - 回调、返回值与HTML5 executeSql函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1898178/
代码如下: declare @tt varchar(20) set @tt = 'monisubbouns' declare @int int 
我不明白为什么下面的代码会这样工作:所有结果都进入 catch block 。 “select * from danceMoves”之后的最后一个 catch block 实际上会将“swag”写入控
我的 ExecuteSQL 任务中有多个更新语句。每个都依赖于一个变量,例如我的身份证 UPDATE TABLE_A SET COL_A={Something} WHERE ID=? UPDATE T
我在 examples 中看到当executeSql有多个参数时,我们使用问号: db.transaction(function(tx){ var addedOn = new Date(); tx.e
我正在尝试通过 Nifi 从 oracle 数据库中获取数据。在 Canvas 中,我将文件大小为 0 KB 的“GenerateFlowFile”处理器安排为每 5 分钟运行一次。这只是为了在成功时
我正在开发一个 cordova 应用程序,我需要在其中创建登录和注册。但是在运行该应用程序时我收到一个名为“错误处理 SQL:未定义”的错误。我知道我收到此错误是因为insertUSERREG 中的
我在 Nifi 中设置了一个工作流程,通过 ExecuteSQL 处理器从 DB2 读取数据并写入某处。当我运行一些包含 varchar 和特殊字符的 SQL 命令时,我在 ExecuteSQL 处理
我正在尝试使用 SQLite 返回 SQL 查询的结果。查询工作正常,我可以在 executeSql 函数中输出结果。但是当我尝试从我的主函数 (returnSQLArray) 访问数组时,它是未定义
我正在尝试将数组参数传递给 ionic 中 SQLiteObject 的函数 executeSql,以使其成为我的 sql 查询的值。 例如 var sqlQuery: string = "SELEC
我实际上尝试用 SQLite 制作一个移动应用程序。我只是尝试创建两个表: constructor(private sqlite:SQLite,public modalCtrl: ModalContr
嗨,我们正在混合移动应用程序上创建。我们正在尝试将数据保存到 SQLite使用 Ionic3 和 Angular4。所以我们将插件添加到我们的项目中,然后我们尝试这样: import { Compon
这是我的代码: 给定一个对象,我尝试在 webStorage 数据库中插入一些数据。问题是控制台返回给我一个“未定义不是函数”,我不知道为什么 这是我的代码片段 try { db = openDa
如何访问结果 tx.executeSql('select query for a table',[],sucessCB); function sucessCB(tx, results){ //<--
我只是想知道 FileMaker Pro 命令“ExecuteSQL()”是否支持 SQL 查询中的子查询? 这是我目前收到的查询: "SELECT Google_Calendar FROM SCH
如何让以下 JavaScript 返回 row 以便我可以在事务外访问它? Apple 的所有示例代码似乎都在事务中将 HTML 写入浏览器,而不是将数据传回调用函数。 沿着: function ge
我试图了解两个处理器之间的区别 ExecuteSQL和 ExecuteSQLRecord (V1.8 以上)。后面提供的有什么额外的东西吗?ExecuteSQL不是吗?我已经看到的一件事是 Execu
在 NiFi 流中,我想读取 JSON 结构,将其拆分,使用有效负载执行 SQL 查询,最后将每个结果输出到 JSON 文件中。 但是,我在检索 ExecuteSQL 中拆分的 FlowFile 的属
我创建了具有数据类型为 -dateTimeOffset 值的单列的表并插入了一些值。 create table dto (dto datetimeoffset(7)) insert into dto
我创建了具有数据类型为 -dateTimeOffset 值的单列的表并插入了一些值。 create table dto (dto datetimeoffset(7)) insert into dto
我正在尝试使用 jqm 应用程序的 web sql 数据库中的数据填充 html 标记。这是我的代码: $("#profile").on("pageinit", function () {
我是一名优秀的程序员,十分优秀!