1

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であることがわかります。どうしたの?

4

0 に答える 0