ちょっと私はHTML5データベースAPIを使いこなしていましたが、関数から結果を返すのに問題があります。ここに私が持っているものがあります。JavascriptデータベースAPIの返品結果
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;
}
私はdbから行を取得できますが、行は変数シナリオに割り当てられません。スコープのことは分かっていますが、GetScenatios関数の結果を返す方法は考えられません。
私は_result.rowsをログに記録するときにデータがありますが、シナリオは常に定義されていません。
どのような考えですか?
ここに私のjsファイルがどのように設定されているかを示します。
window.MyExtension = (function()
{
return ({
OtherMethod: function() {
var list = window.MyExtension.GetScenarios();
},
GetScenarios: function() {
...see above
}
}());
:この、へ
:
から、あなたの呼び出し元のコードを変更:あなたはGetScenarios()
にコールバックパラメータを追加する必要があります。 'GetScenarios:function()'は 'function GetScenarios()'でなければなりません。 'GetScenarios = function()'でも構いませんが、 'var list = GetScenarios();'の前に現れなければなりません。 – gilly3@ gilly3、正しい、最後の発言を除いて:http://jsfiddle.net/FvdbT/ – stivlo
@stivlo - おそらくあなたは私のコメントを誤解しました。あなたのjsFiddleによって証明された '関数GetScenarios()'が動作します。しかし、次のように 'GetScenarios = function()'はそうではありません。http://jsfiddle.net/FvdbT/1/ – gilly3