JavaScriptコードとJQuery ajax 呼び出しを含む 3 つの単純なモジュールがあります。最初のモジュールlot.js :
var Lots = (function ($) {
var self = this;
var processIsRunning;
return {
getLots: function (lotsUrl) {
var items = [];
self.processIsRunning = true;
var request = $.ajax({
url: lotsUrl,
type: 'POST',
success: function (data) {
//some code
}
});
$.when(request).done(function() {
//some code
self.processIsRunning = false;
});
},
isComplete: function () {
return !self.processIsRunning;
}
};
}(jQuery));
モジュールbids.js :
var Bids = (function ($) {
return {
makeBids: function (bidUrl) {
//some code
}
};
}(jQuery));
すべてをバンドルするモジュールapp.js :
var App = (function () {
var lots_url = null;
var bid_url = null;
var self = this;
return {
if (!self.lots_url) {
self.lots_url = lotsUrl;
}
GetLots: function (lotsUrl) {
Lots.getLots(self.lots_url);
},
MakeBids: function makeBid(bidUrl) {
//some code
var isComp = Lots.isComplete();
while (!isComp) {
isComp = Lots.isComplete();
}
Bids.makeBids(self.bid_url);
}
};
}());
しかし、「while」ループでは、常に「isComplete=false」になります。デバッグでは、 lotsモジュールの 'processIsRunning'が常にtrueであることがわかります。どうしたの?