Browse Source

Add Utils.runInSequence()

customisations
alemart 11 months ago
parent
commit
0c644ac199
1 changed files with 15 additions and 1 deletions
  1. 15
    1
      src/utils/utils.ts

+ 15
- 1
src/utils/utils.ts View File

94
     /**
94
     /**
95
      * Wait a few milliseconds
95
      * Wait a few milliseconds
96
      * @param milliseconds how long should we wait?
96
      * @param milliseconds how long should we wait?
97
-     * @returns a promise that resolves soon after the specified time
97
+     * @returns a promise that is resolved soon after the specified time
98
      */
98
      */
99
     static wait(milliseconds: number): SpeedyPromise<void>
99
     static wait(milliseconds: number): SpeedyPromise<void>
100
     {
100
     {
104
     }
104
     }
105
 
105
 
106
     /**
106
     /**
107
+     * Run SpeedyPromises sequentially
108
+     * @param promises an array of SpeedyPromises
109
+     * @returns a promise that is resolved as soon as all input promises are
110
+     * resolved, or that is rejected as soon as an input promise is rejected
111
+     */
112
+    static runInSequence<T>(promises: SpeedyPromise<T>[]): SpeedyPromise<T>
113
+    {
114
+        return promises.reduce(
115
+            (prev, curr) => prev.then(() => curr),
116
+            Speedy.Promise.resolve()
117
+        );
118
+    }
119
+
120
+    /**
107
      * Convert a resolution type to a resolution measured in pixels
121
      * Convert a resolution type to a resolution measured in pixels
108
      * @param resolution resolution type
122
      * @param resolution resolution type
109
      * @param aspectRatio width / height ratio
123
      * @param aspectRatio width / height ratio

Loading…
Cancel
Save