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 +++++++++++++++++++++-------------------- index.html | 2 +- map.html | 2 +- 3 files changed, 23 insertions(+), 22 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); }, }; diff --git a/index.html b/index.html index 4b7b298..16a13b0 100644 --- a/index.html +++ b/index.html @@ -136,7 +136,7 @@ </div> <script src="https://polyfill.io/v3/polyfill.min.js?features=Promise,XMLHttpRequest"></script> <script type="text/javascript" src="lang_pl.js?v10" id="lang_script"></script> - <script type="text/javascript" src="common.js?v10"></script> + <script type="text/javascript" src="common.js?v11"></script> <script type="text/javascript" src="index.js?v8"></script> </body> </html> diff --git a/map.html b/map.html index f052b3d..9d2f1df 100644 --- a/map.html +++ b/map.html @@ -21,7 +21,7 @@ <script src="https://polyfill.io/v3/polyfill.min.js?features=Array.prototype.forEach,Array.prototype.includes,Array.prototype.map,Element.prototype.classList,Promise,String.prototype.startsWith,XMLHttpRequest,requestAnimationFrame"></script> <script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v5.3.0/build/ol.js" integrity="sha384-iQkGyyH4ioz3m+maM3s9MX1Oq67mACa4B9Z3ovUv3Sv37LJ96fx3WnZfLoiC3Wfl" crossorigin="anonymous"></script> <script tyle="text/javascript" src="lang_pl.js?v10" id="lang_script"></script> -<script tyle="text/javascript" src="common.js?v10"></script> +<script tyle="text/javascript" src="common.js?v11"></script> <script tyle="text/javascript" src="map.js?v25"></script> </body> </html> -- Gitblit v1.9.1