Javascript数据库API返回结果
嘿,我一直在玩弄HTML5数据库API,我很难从函数返回结果。这是我的Javascript数据库API返回结果,javascript,html,Javascript,Html,嘿,我一直在玩弄HTML5数据库API,我很难从函数返回结果。这是我的 var list = GetScenarios(); GetScenarios: function() { var scenarios; // get all the scenarios conn.transaction(function(_t) { _t.executeSql('SELECT * FROM scenarios', [], function(_tr, _result) { scena
var list = GetScenarios();
GetScenarios: function()
{
var scenarios;
// get all the scenarios
conn.transaction(function(_t) {
_t.executeSql('SELECT * FROM scenarios', [], function(_tr, _result) {
scenarios = _result.rows;
});
});
return scenarios;
}
我设法从数据库中获取行,但这些行不会分配给可变场景。我知道这是范围问题,但我不知道如何从GetScenatios函数返回结果
当我记录_result.rows时,我在那里有数据,但场景始终未定义
有什么想法吗
下面是如何设置我的js文件
window.MyExtension = (function()
{
return ({
OtherMethod: function() {
var list = window.MyExtension.GetScenarios();
},
GetScenarios: function() {
...see above
}
}());
看起来您正试图从异步请求返回代码,就好像它是同步的一样。您需要将回调参数添加到
GetScenarios()
:
并将您的呼叫代码更改为:
var list = GetScenarios();
// do something with list
为此:
GetScenarios(function (list) {
// do something with list
});
您的代码是无效的JavaScript
GetScenarios:function()
应该是function GetScenarios()
。它可以是GetScenarios=function()
,但它必须出现在var list=GetScenarios()之前代码>@gilly3,正确,除了最后一句话:@stivlo-也许你误读了我的评论<代码>函数GetScenarios()
可以工作,JSFIDLE已经证明了这一点。但是,GetScenarios=function()
不起作用,这一点可以证明:GetScenarios:function()起作用。我编辑了这篇文章以反映js文件setup@gilly3是的,我同意。流氓,打开你的JavaScript控制台,比如FireBug,修复语法错误。Perfecto!非常感谢你。我还必须在对象中使用window.MyExtension.GetScenario()。谢谢你
GetScenarios(function (list) {
// do something with list
});