Improved www.ttss.krakow.pl
Jacek Kowalski
2019-07-06 e82356cfbcd8728b46beaa27aaf4c614da5797d6
Make Deferred a class
3 files modified
45 ■■■■ changed files
common.js 41 ●●●● patch | view | raw | blame | history
index.html 2 ●●● patch | view | raw | blame | history
map.html 2 ●●● patch | view | raw | blame | history
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);
    },
};
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>
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>