gpt4 book ai didi

javascript - 回调、返回值与HTML5 executeSql函数

转载 作者:搜寻专家 更新时间:2023-10-31 08:12:42 25 4
gpt4 key购买 nike

我有一个大问题。我知道这是关于回调,关闭,但我不知道如何解决问题。这是我的代码

$.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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com