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