Ajax$.when()で複数の非同期処理を行って、.done()で結果を受け取ってその後の処理をするのですが、特に非同期処理がAjaxの時、$.when()の.done()でAjaxで取得できた値を受け取って加工するのではなく、Ajax側で取得したデータを加工して$.when()のdone()に渡したい時のやりかたのメモ。"bar"});jQuery.Deferredを使うfooはajaxなのでjqXHRが返され、Ajaxが完了した時に内部的にDeferred.resolve()が実行されている様です。$.ajax.done内でreturnをしてもその前にDeferred.resolve()で取得した結果が返されてしまっているのだと思います。あれば、明示的にDeferredオブジェクトを返す関数を呼び出すようにして、Deferred.resolve()で加工済みの値を返すようにすれば、実現できそうです。"bar"});感想Ajaxのデータを加工して渡したい場合は関数にしなければならないので、$.when()での呼び出し方が変わってしまいます。有るものと、無いものができて少しキモチワルイかもしれません。defer.promise(this);を使い$.when()内で呼び出すの処理は()有りで統一しています。一度関数を呼び出す分少し無駄な処理をしていると思いますが。чайка!無職のデザイナーが描いています。コンポーネント外のDOMに子コンポーネントを追加したい。(2)参加グループプログラミングデザインPHPPythonJavaScriptRubyWordPressCLOSEはてなブログをはじめよう!kikiki-kikiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。