Improved www.ttss.krakow.pl
Jacek Kowalski
2023-12-18 ee953eef09cc090dc98a09038ab97be55875a2a5
common.js
@@ -22,29 +22,32 @@
 ********/
function Deferred(promise, request) {
   return {
      promise: promise,
      request: request,
      abort: function() {
         request.abort.bind(request);
         return Deferred(promise, request);
      },
      done: function(func) {
         return Deferred(promise.then(func), request);
      },
      fail: function(func) {
         return Deferred(promise.catch(func), request);
      },
      always: function(func) {
         return Deferred(promise.finally(func), request);
      },
   };
   this.promise = promise;
   this.request = request;
}
Deferred.prototype = {
   promise: null,
   request: null,
   abort: function() {
      this.request.abort.bind(this.request);
      return new Deferred(this.promise, this.request);
   },
   done: function(func) {
      return new Deferred(this.promise.then(func), this.request);
   },
   fail: function(func) {
      return new Deferred(this.promise.catch(func), this.request);
   },
   always: function(func) {
      return new Deferred(this.promise.finally(func), this.request);
   },
};
Deferred.all = function(iterable) {
   return Deferred(
   return new Deferred(
      Promise.all(
         iterable.map(x => x.promise)
         iterable.map(function(x) {
            return x.promise;
         })
      )
   );
};
@@ -56,6 +59,7 @@
      var self = this;
      var request = new XMLHttpRequest();
      var promise = new Promise(function(resolve, reject) {
         request.open('GET', url, true);
         request.timeout = self.timeout;
         request.onreadystatechange = function() {
            if(this.readyState == 4) {
@@ -70,10 +74,9 @@
               }
            }
         };
         request.open('GET', url, true);
         request.send();
      });
      return Deferred(promise, request);
      return new Deferred(promise, request);
   },
};