質問: $.extend(true,{},data.testle); console.log(allamount); },"json"); // $.postの外 console.log(allamount); ``` 上のコードを実行すると8行目のconsoleより予定通りのオブジェクトが返されますが、10行目のconsoleからは空が返されます。function(data)内でしかallamountは維持されないようです。 function外にて有効にするにはどうすれば宜しいでしょうか? 解答の方を宜しくお願いいたします。
回答: > > > ``` > // $.postの外 > console.log(allamount); > ``` > > 関数外部から変数 `allamount` を参照することはできますが、参照時点でまだ `allamount` が初期化されていません。 初期化完了時に `allamount` を参照しなければ期待通りに動作しません。 * 外部にコールバック関数を設けて処理完了後にコールバック関数を呼び出す * `Promise` インターフェースでラップして `.then()` で呼び出す `jQuery.ajax` は `Promise` をサポートしています。 * JavaScript Promiseの本 * jQuery.ajax() | jQuery API Documentation Re: namuyan_mine さん