1

私は小さなプロジェクトのためにPhonegapWebStorageをテストしています:

var listsCount = 0;

tx.executeSql("SELECT * FROM list WHERE id = ?", [id], successGetList, errorGetList );

function successGetList(tx, results){
    listsCount = results.rows.length; // this will be 2, in my case
}

function errorGetList(err){
    console.log("Error processing SQL: "+err.code);
}

console.log(listsCount); // this will show 0, instead of 2

私が抱えている問題は、メソッドlistsCount内に設定されないことです。successGetListそこに戻しても。

関数内でその変数を設定する方法についてのアイデアはありsuccessGetListますか?

ありがとう

4

1 に答える 1

4

それは設定されますが、console.logその前に呼び出しが発生します(これが非同期コードの動作方法です!)。コールバックの値を使用するだけです。必要に応じて、そこから別の関数を呼び出して、データを渡します。

于 2013-02-18T18:53:58.177 に答える