これをjQueryでコーディングしました。ただし、コールバックは希望する順序で呼び出されません (done ブランチのコールバックは when ブランチのコールバックより前に呼び出されます)。internalOrderRequest
andrejectionReasonRequest
を単純な変数として (関数の代わりに) 定義すると、すべて正常に動作します。誰でもアドバイスできますか?
var self = this;
debugger;
var internalOrderRequest = function() {
$
.ajax({
type : "GET",
url : internalOrderServiceURL,
contentType : "application/json; charset=utf-8",
dataType : "json",
success : self.retrieveInternalOrderSuccess,
error : self.retrieveInternalOrderError
})
};
var rejectionReasonRequest = function() {
$
.ajax({
type : "GET",
url : rejectionReasonServiceURL,
contentType : "application/json; charset=utf-8",
dataType : "json",
success : self.retrieveRejectionReasonSuccess,
error : self.retrieveRejectionReasonError
})
}
$
.when(internalOrderRequest(),
rejectionReasonRequest())
.done(
function(result1, result2) {
$
.ajax({
type : "GET",
url : salesOrderInfoServiceURL,
contentType : "application/json; charset=utf-8",
dataType : "json",
success : function(
oResult) {
self
.retrieveServiceItemSuccess(oResult);
},
error : function(
oResult) {
self
.retrieveServiceItemError(oResult);
},
})
});