How to abort previous the live order Model API when new API is called

Description: When the LiveOrderModel is called multiple times by an unwanted requests, we can use this solution to abort the previous requests to reduce the API request and response time so the user will get responses quicker than before.

JavaScript(Entry Point): extend live order model and update save function.

// @method save Override default save method to just return a resolved promise when the cart have already been saved.
        // @return {jQuery.Deferred}
        save: function save() {
            try {
                let self = this;
                try {
                    if (self.liveOrderRequest) {
                        self.liveOrderRequest.abort();
                    }
                } catch (error) {
                    console.error('Error @ save abort', error);
                }
                if (this.get('confirmation') && this.get('confirmation').get('internalid')) {
                    return jQuery.Deferred().resolve();
                }
                self.liveOrderRequest = TransactionModel.prototype.save.apply(this, arguments);
                return self.liveOrderRequest;
            } catch (error) {
                console.error("Error @ save", error);
            }
        },

Leave a comment

Your email address will not be published. Required fields are marked *