外部JSONファイルを検索するjQuery/Javascript関数を実行しようとしていますが、指定された変数がJSONのユーザー名の1つとして検出された場合はtrue
を返します。Jquery/Javascript Skip lines?
これは私が持っているものである。いくつかの場合
[{"username":"a"},{"username":"q"}]
: (与えられた変数player
がa
に等しい)
function loggedIn(player) {
var result = false;
var liurl = "liplay.json";
$.getJSON(liurl, function (json) {
$.each(json, function (key, value) {
if (value.username == player) {
alert();
result = true;
} else {}
});
});
return result;
}
外部JSONファイル(liplay.json)は、このようなものです理由は、コードは常にfalseを返します。
一度に1ステップずつ実行しようとしましたが、何らかの理由でChromeはコードの最初の数行を$.getJSON(liurl, function(json){
まで実行してからreturn result;
までスキップしていました。 if/elseステートメントを実行する部分がなぜスキップされているのかわかりません。なぜこれが起こっているのか、どのように修正するのかについてのアイデアはありますか?
結果をloggedIn関数で返さないでください。getJSONの成功コールバックに必要なものを実行してください。これは、非同期に実行されるためです。 –
JSONを逆シリアル化すると、ループせずに配列をチェックすることができます: return json [player]!= undefined; –