.when()
2 つの ajax 呼び出しを行い、データを別の関数に渡す jQueryがあります。
function getTableData() {
$.when(ajaxCall1(), ajaxCall2()).then(doStuff);
}
両方の ajax メソッドは、コントローラーで異なるメソッドを使用することを除いて、基本的に同じです。
function ajaxCall1() {
return $.ajax({
type: 'POST',
url: 'Controller/ControllerMethod1',
});
}
function ajaxCall2() {
return $.ajax({
type: 'POST',
url: 'Controller/ControllerMethod2',
});
}
doStuff()
渡されるデータはajax メソッドごとに同じであると期待していますが、そうではないようです。
function doStuff(jsonData) {
doStuffWithData(jsonData[0]);
doMoreStuffWithData(jsonData[2]);
}
私は期待jsonData[0]
しておりjsonData[2]
、両方にオブジェクト配列が含まれています。FireBugは、次のことを示していますjsonData[0]
:
[Object { Description="Completed", Id=3, ItemTypelist=[2]}, Object { Description="Completed - QC", Id=3, ItemTypelist=[2]}, Object { Description="Completed - Approval Needed", Id=3, ItemTypelist=[2]}, 5 more...]
jsonData[2]
次のようになります。
Object { readyState=4, responseText="[{"Description":"Comple...Item Type 2","Id":1}]}]", status=200, more...}
なぜこれらは異なるのですか?私はjsonData[2]
のようになる必要がありますjsonData[0]
。