2017-03-16 15 views
-1

私は、スクリプトがundefined私を示しアヤックスajax.done()でデータを取得する方法?

var nickname; 
$.ajax({ 
      method:'GET', 
      url:get_gamestart_api_url, 

     }).done(function(data){ 

      $get_id.append("<li class='nickname'>" character.nickname+"</li>", 
       "<li class='attack_point'>" character.status.attack_point+"</li>", 
        ); 
      nickname=character.nickname; 
     }); 

console.log(nickname); 

を使用して、attack_pointデータをニックネームを取得します。

私はconsole.log(nickname);done()の前に実行されたと思います。なぜこうなった?

plaseの誰かが、私はあなたに感謝:)

+1

提案されている重複した回答をすべて読んでください。 JSを使うつもりなら、**非同期コードの扱い方と同期コードとの違いを知っておくこと**が不可欠です**。 – Carcigenicate

+0

@Andreas、そして 'Carcigenicate'は良いアドバイスに感謝します!これからは、私は非同期、同期の違いを理解することができます!私の質問は、私は、私は正確にあなたが何をしたいかどう@Min –

答えて

0

をAjaxリクエストは、彼らがバックグラウンドでprocesedさを意味し、非同期であるため、console.log(nickname);.done()前に実行されたのに役立ちます。これは、プログラムがあなたが書いた順序で実行される必要はないことを意味します。 Ajaxリクエストが完了してからconsole.log(nickname);を実行する場合は、.done()ファンクションに含める必要があります。

+0

はありがとうありがとうパンを食べてみました,,愚かです?たぶん私はその –

+1

外ニックネーム値を使いたいbecuase、前にそれを得る... @Larpeeが、これは私のためのソリューションをしませ助言 – Larpee

+0

のお手伝いをすることができますありがとうござい ')@Larpeeは、ここで私が何をしたい私の[リンク](https://gist.github.com/deadlylaid/5cc840a9ceccfbadead5f2c835591153)ですが、私は、'コールバックを(使用して、すでに私の問題を解決しましたしかし、あなたの優しさをありがとう。 Larpee –