From e82356cfbcd8728b46beaa27aaf4c614da5797d6 Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Sat, 06 Jul 2019 14:58:25 +0000 Subject: [PATCH] Make Deferred a class --- common.js | 41 +++++++++++++++++++++-------------------- 1 files changed, 21 insertions(+), 20 deletions(-) diff --git a/common.js b/common.js index 964cf68..9551468 100644 --- a/common.js +++ b/common.js @@ -22,27 +22,28 @@ ********/ 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) ) @@ -73,7 +74,7 @@ request.open('GET', url, true); request.send(); }); - return Deferred(promise, request); + return new Deferred(promise, request); }, }; -- Gitblit v1.9.1