From 4bf9a457844e360187dc2b37bf164a3b3a58e73a Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Sun, 30 Aug 2020 20:40:28 +0000 Subject: [PATCH] Fix right panel on Safari browser (overflow: auto + position: fixed) --- common.js | 47 +++++++++++++++++++++++++---------------------- 1 files changed, 25 insertions(+), 22 deletions(-) diff --git a/common.js b/common.js index 964cf68..4c7b840 100644 --- a/common.js +++ b/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); }, }; -- Gitblit v1.9.1