1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 |
|
4 |
|
5 |
|
6 | var PromiseUtils = (function () {
|
7 | function PromiseUtils() {
|
8 | }
|
9 | |
10 |
|
11 |
|
12 | PromiseUtils.create = function (value) {
|
13 | var promise = Promise.resolve(value);
|
14 | promise["__value__"] = value;
|
15 | return promise;
|
16 | };
|
17 | |
18 |
|
19 |
|
20 |
|
21 | PromiseUtils.extractValue = function (object) {
|
22 | if (object instanceof Promise && object["__value__"])
|
23 | return object["__value__"];
|
24 | return object;
|
25 | };
|
26 | |
27 |
|
28 |
|
29 |
|
30 | PromiseUtils.runInSequence = function (collection, callback) {
|
31 | var results = [];
|
32 | return collection.reduce(function (promise, item) {
|
33 | return promise.then(function () {
|
34 | return callback(item);
|
35 | }).then(function (result) {
|
36 | results.push(result);
|
37 | });
|
38 | }, Promise.resolve()).then(function () {
|
39 | return results;
|
40 | });
|
41 | };
|
42 | |
43 |
|
44 |
|
45 |
|
46 | PromiseUtils.settle = function (promises) {
|
47 | return Promise.all(promises.map(function (p) { return Promise.resolve(p).then(function (v) { return ({
|
48 | state: "fulfilled",
|
49 | value: v,
|
50 | }); }, function (r) { return ({
|
51 | state: "rejected",
|
52 | reason: r,
|
53 | }); }); })).then(function (results) {
|
54 | var rejected = results.find(function (result) { return result.state === "rejected"; });
|
55 | if (rejected)
|
56 | return Promise.reject(rejected.reason);
|
57 | return results.map(function (result) { return result.value; });
|
58 | });
|
59 | };
|
60 | return PromiseUtils;
|
61 | }());
|
62 | exports.PromiseUtils = PromiseUtils;
|
63 |
|
64 |
|