1
+ interface Thenable < T > {
2
+ /**
3
+ * Attaches callbacks for the resolution and/or rejection of the ThenPromise.
4
+ * @param onfulfilled The callback to execute when the ThenPromise is resolved.
5
+ * @param onrejected The callback to execute when the ThenPromise is rejected.
6
+ * @returns A ThenPromise for the completion of which ever callback is executed.
7
+ */
8
+ then < TResult1 = T , TResult2 = never > ( onfulfilled ?: ( ( value : T ) => TResult1 | Thenable < TResult1 > ) | undefined | null , onrejected ?: ( ( reason : any ) => TResult2 | Thenable < TResult2 > ) | undefined | null ) : Thenable < TResult1 | TResult2 > ;
9
+ }
10
+
11
+ /**
12
+ * Represents the completion of an asynchronous operation
13
+ */
14
+ interface ThenPromise < T > {
15
+ /**
16
+ * Attaches callbacks for the resolution and/or rejection of the ThenPromise.
17
+ * @param onfulfilled The callback to execute when the ThenPromise is resolved.
18
+ * @param onrejected The callback to execute when the ThenPromise is rejected.
19
+ * @returns A ThenPromise for the completion of which ever callback is executed.
20
+ */
21
+ then < TResult1 = T , TResult2 = never > ( onfulfilled ?: ( ( value : T ) => TResult1 | Thenable < TResult1 > ) | undefined | null , onrejected ?: ( ( reason : any ) => TResult2 | Thenable < TResult2 > ) | undefined | null ) : ThenPromise < TResult1 | TResult2 > ;
22
+
23
+ /**
24
+ * Attaches a callback for only the rejection of the ThenPromise.
25
+ * @param onrejected The callback to execute when the ThenPromise is rejected.
26
+ * @returns A ThenPromise for the completion of the callback.
27
+ */
28
+ catch < TResult = never > ( onrejected ?: ( ( reason : any ) => TResult | Thenable < TResult > ) | undefined | null ) : ThenPromise < T | TResult > ;
29
+
30
+ // Extensions specific to then/promise
31
+
32
+ /**
33
+ * Attaches callbacks for the resolution and/or rejection of the ThenPromise, without returning a new promise.
34
+ * @param onfulfilled The callback to execute when the ThenPromise is resolved.
35
+ * @param onrejected The callback to execute when the ThenPromise is rejected.
36
+ */
37
+ done ( onfulfilled ?: ( ( value : T ) => any ) | undefined | null , onrejected ?: ( ( reason : any ) => any ) | undefined | null ) : void ;
38
+
39
+
40
+ /**
41
+ * Calls a node.js style callback. If none is provided, the promise is returned.
42
+ */
43
+ nodeify ( callback : void | null ) : ThenPromise < T > ;
44
+ nodeify ( callback : ( err : Error , value : T ) => void ) : void ;
45
+ }
46
+
47
+ interface ThenPromiseConstructor {
48
+ /**
49
+ * A reference to the prototype.
50
+ */
51
+ readonly prototype : ThenPromise < any > ;
52
+
53
+ /**
54
+ * Creates a new ThenPromise.
55
+ * @param executor A callback used to initialize the promise. This callback is passed two arguments:
56
+ * a resolve callback used resolve the promise with a value or the result of another promise,
57
+ * and a reject callback used to reject the promise with a provided reason or error.
58
+ */
59
+ new < T > ( executor : ( resolve : ( value ?: T | Thenable < T > ) => void , reject : ( reason ?: any ) => void ) => any ) : ThenPromise < T > ;
60
+
61
+ /**
62
+ * Creates a ThenPromise that is resolved with an array of results when all of the provided Promises
63
+ * resolve, or rejected when any ThenPromise is rejected.
64
+ * @param values An array of Promises.
65
+ * @returns A new ThenPromise.
66
+ */
67
+ all < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > , T3 | Thenable < T3 > , T4 | Thenable < T4 > , T5 | Thenable < T5 > , T6 | Thenable < T6 > , T7 | Thenable < T7 > , T8 | Thenable < T8 > , T9 | Thenable < T9 > , T10 | Thenable < T10 > ] ) : ThenPromise < [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ] > ;
68
+
69
+ /**
70
+ * Creates a ThenPromise that is resolved with an array of results when all of the provided Promises
71
+ * resolve, or rejected when any ThenPromise is rejected.
72
+ * @param values An array of Promises.
73
+ * @returns A new ThenPromise.
74
+ */
75
+ all < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > , T3 | Thenable < T3 > , T4 | Thenable < T4 > , T5 | Thenable < T5 > , T6 | Thenable < T6 > , T7 | Thenable < T7 > , T8 | Thenable < T8 > , T9 | Thenable < T9 > ] ) : ThenPromise < [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ] > ;
76
+
77
+ /**
78
+ * Creates a ThenPromise that is resolved with an array of results when all of the provided Promises
79
+ * resolve, or rejected when any ThenPromise is rejected.
80
+ * @param values An array of Promises.
81
+ * @returns A new ThenPromise.
82
+ */
83
+ all < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > , T3 | Thenable < T3 > , T4 | Thenable < T4 > , T5 | Thenable < T5 > , T6 | Thenable < T6 > , T7 | Thenable < T7 > , T8 | Thenable < T8 > ] ) : ThenPromise < [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ] > ;
84
+
85
+ /**
86
+ * Creates a ThenPromise that is resolved with an array of results when all of the provided Promises
87
+ * resolve, or rejected when any ThenPromise is rejected.
88
+ * @param values An array of Promises.
89
+ * @returns A new ThenPromise.
90
+ */
91
+ all < T1 , T2 , T3 , T4 , T5 , T6 , T7 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > , T3 | Thenable < T3 > , T4 | Thenable < T4 > , T5 | Thenable < T5 > , T6 | Thenable < T6 > , T7 | Thenable < T7 > ] ) : ThenPromise < [ T1 , T2 , T3 , T4 , T5 , T6 , T7 ] > ;
92
+
93
+ /**
94
+ * Creates a ThenPromise that is resolved with an array of results when all of the provided Promises
95
+ * resolve, or rejected when any ThenPromise is rejected.
96
+ * @param values An array of Promises.
97
+ * @returns A new ThenPromise.
98
+ */
99
+ all < T1 , T2 , T3 , T4 , T5 , T6 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > , T3 | Thenable < T3 > , T4 | Thenable < T4 > , T5 | Thenable < T5 > , T6 | Thenable < T6 > ] ) : ThenPromise < [ T1 , T2 , T3 , T4 , T5 , T6 ] > ;
100
+
101
+ /**
102
+ * Creates a ThenPromise that is resolved with an array of results when all of the provided Promises
103
+ * resolve, or rejected when any ThenPromise is rejected.
104
+ * @param values An array of Promises.
105
+ * @returns A new ThenPromise.
106
+ */
107
+ all < T1 , T2 , T3 , T4 , T5 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > , T3 | Thenable < T3 > , T4 | Thenable < T4 > , T5 | Thenable < T5 > ] ) : ThenPromise < [ T1 , T2 , T3 , T4 , T5 ] > ;
108
+
109
+ /**
110
+ * Creates a ThenPromise that is resolved with an array of results when all of the provided Promises
111
+ * resolve, or rejected when any ThenPromise is rejected.
112
+ * @param values An array of Promises.
113
+ * @returns A new ThenPromise.
114
+ */
115
+ all < T1 , T2 , T3 , T4 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > , T3 | Thenable < T3 > , T4 | Thenable < T4 > ] ) : ThenPromise < [ T1 , T2 , T3 , T4 ] > ;
116
+
117
+ /**
118
+ * Creates a ThenPromise that is resolved with an array of results when all of the provided Promises
119
+ * resolve, or rejected when any ThenPromise is rejected.
120
+ * @param values An array of Promises.
121
+ * @returns A new ThenPromise.
122
+ */
123
+ all < T1 , T2 , T3 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > , T3 | Thenable < T3 > ] ) : ThenPromise < [ T1 , T2 , T3 ] > ;
124
+
125
+ /**
126
+ * Creates a ThenPromise that is resolved with an array of results when all of the provided Promises
127
+ * resolve, or rejected when any ThenPromise is rejected.
128
+ * @param values An array of Promises.
129
+ * @returns A new ThenPromise.
130
+ */
131
+ all < T1 , T2 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > ] ) : ThenPromise < [ T1 , T2 ] > ;
132
+
133
+ /**
134
+ * Creates a ThenPromise that is resolved with an array of results when all of the provided Promises
135
+ * resolve, or rejected when any ThenPromise is rejected.
136
+ * @param values An array of Promises.
137
+ * @returns A new ThenPromise.
138
+ */
139
+ all < T > ( values : ( T | Thenable < T > ) [ ] ) : ThenPromise < T [ ] > ;
140
+
141
+ /**
142
+ * Creates a ThenPromise that is resolved or rejected when any of the provided Promises are resolved
143
+ * or rejected.
144
+ * @param values An array of Promises.
145
+ * @returns A new ThenPromise.
146
+ */
147
+ race < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > , T3 | Thenable < T3 > , T4 | Thenable < T4 > , T5 | Thenable < T5 > , T6 | Thenable < T6 > , T7 | Thenable < T7 > , T8 | Thenable < T8 > , T9 | Thenable < T9 > , T10 | Thenable < T10 > ] ) : ThenPromise < T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 | T10 > ;
148
+
149
+ /**
150
+ * Creates a ThenPromise that is resolved or rejected when any of the provided Promises are resolved
151
+ * or rejected.
152
+ * @param values An array of Promises.
153
+ * @returns A new ThenPromise.
154
+ */
155
+ race < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > , T3 | Thenable < T3 > , T4 | Thenable < T4 > , T5 | Thenable < T5 > , T6 | Thenable < T6 > , T7 | Thenable < T7 > , T8 | Thenable < T8 > , T9 | Thenable < T9 > ] ) : ThenPromise < T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 > ;
156
+
157
+ /**
158
+ * Creates a ThenPromise that is resolved or rejected when any of the provided Promises are resolved
159
+ * or rejected.
160
+ * @param values An array of Promises.
161
+ * @returns A new ThenPromise.
162
+ */
163
+ race < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > , T3 | Thenable < T3 > , T4 | Thenable < T4 > , T5 | Thenable < T5 > , T6 | Thenable < T6 > , T7 | Thenable < T7 > , T8 | Thenable < T8 > ] ) : ThenPromise < T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 > ;
164
+
165
+ /**
166
+ * Creates a ThenPromise that is resolved or rejected when any of the provided Promises are resolved
167
+ * or rejected.
168
+ * @param values An array of Promises.
169
+ * @returns A new ThenPromise.
170
+ */
171
+ race < T1 , T2 , T3 , T4 , T5 , T6 , T7 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > , T3 | Thenable < T3 > , T4 | Thenable < T4 > , T5 | Thenable < T5 > , T6 | Thenable < T6 > , T7 | Thenable < T7 > ] ) : ThenPromise < T1 | T2 | T3 | T4 | T5 | T6 | T7 > ;
172
+
173
+ /**
174
+ * Creates a ThenPromise that is resolved or rejected when any of the provided Promises are resolved
175
+ * or rejected.
176
+ * @param values An array of Promises.
177
+ * @returns A new ThenPromise.
178
+ */
179
+ race < T1 , T2 , T3 , T4 , T5 , T6 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > , T3 | Thenable < T3 > , T4 | Thenable < T4 > , T5 | Thenable < T5 > , T6 | Thenable < T6 > ] ) : ThenPromise < T1 | T2 | T3 | T4 | T5 | T6 > ;
180
+
181
+ /**
182
+ * Creates a ThenPromise that is resolved or rejected when any of the provided Promises are resolved
183
+ * or rejected.
184
+ * @param values An array of Promises.
185
+ * @returns A new ThenPromise.
186
+ */
187
+ race < T1 , T2 , T3 , T4 , T5 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > , T3 | Thenable < T3 > , T4 | Thenable < T4 > , T5 | Thenable < T5 > ] ) : ThenPromise < T1 | T2 | T3 | T4 | T5 > ;
188
+
189
+ /**
190
+ * Creates a ThenPromise that is resolved or rejected when any of the provided Promises are resolved
191
+ * or rejected.
192
+ * @param values An array of Promises.
193
+ * @returns A new ThenPromise.
194
+ */
195
+ race < T1 , T2 , T3 , T4 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > , T3 | Thenable < T3 > , T4 | Thenable < T4 > ] ) : ThenPromise < T1 | T2 | T3 | T4 > ;
196
+
197
+ /**
198
+ * Creates a ThenPromise that is resolved or rejected when any of the provided Promises are resolved
199
+ * or rejected.
200
+ * @param values An array of Promises.
201
+ * @returns A new ThenPromise.
202
+ */
203
+ race < T1 , T2 , T3 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > , T3 | Thenable < T3 > ] ) : ThenPromise < T1 | T2 | T3 > ;
204
+
205
+ /**
206
+ * Creates a ThenPromise that is resolved or rejected when any of the provided Promises are resolved
207
+ * or rejected.
208
+ * @param values An array of Promises.
209
+ * @returns A new ThenPromise.
210
+ */
211
+ race < T1 , T2 > ( values : [ T1 | Thenable < T1 > , T2 | Thenable < T2 > ] ) : ThenPromise < T1 | T2 > ;
212
+
213
+ /**
214
+ * Creates a ThenPromise that is resolved or rejected when any of the provided Promises are resolved
215
+ * or rejected.
216
+ * @param values An array of Promises.
217
+ * @returns A new ThenPromise.
218
+ */
219
+ race < T > ( values : ( T | Thenable < T > ) [ ] ) : ThenPromise < T > ;
220
+
221
+ /**
222
+ * Creates a new rejected promise for the provided reason.
223
+ * @param reason The reason the promise was rejected.
224
+ * @returns A new rejected ThenPromise.
225
+ */
226
+ reject ( reason : any ) : ThenPromise < never > ;
227
+
228
+ /**
229
+ * Creates a new rejected promise for the provided reason.
230
+ * @param reason The reason the promise was rejected.
231
+ * @returns A new rejected ThenPromise.
232
+ */
233
+ reject < T > ( reason : any ) : ThenPromise < T > ;
234
+
235
+ /**
236
+ * Creates a new resolved promise for the provided value.
237
+ * @param value A promise.
238
+ * @returns A promise whose internal state matches the provided promise.
239
+ */
240
+ resolve < T > ( value : T | Thenable < T > ) : ThenPromise < T > ;
241
+
242
+ /**
243
+ * Creates a new resolved promise .
244
+ * @returns A resolved promise.
245
+ */
246
+ resolve ( ) : ThenPromise < void > ;
247
+
248
+ // Extensions specific to then/promise
249
+
250
+ denodeify : ( fn : Function ) => ( ...args : any [ ] ) => ThenPromise < any > ;
251
+ nodeify : ( fn : Function ) => Function ;
252
+ }
253
+
254
+ declare var ThenPromise : ThenPromiseConstructor ;
255
+
256
+ export = ThenPromise ;
0 commit comments