|
1 |
| -/* This file is part of reason-promise, released under the MIT license. See |
2 |
| - LICENSE.md for details, or visit |
3 |
| - https://github.com/aantron/promise/blob/master/LICENSE.md. */ |
4 |
| - |
5 | 1 | type rejectable<+'a, +'e>
|
6 | 2 | type never
|
7 | 3 |
|
@@ -123,7 +119,7 @@ module Js_ = {
|
123 | 119 |
|
124 | 120 | let allArray = promises => map(jsAll(promises), promises => Belt.Array.map(promises, unbox))
|
125 | 121 |
|
126 |
| - let all = promises => map(allArray(Belt.List.toArray(promises)), Belt.List.fromArray) |
| 122 | + let all = promises => map(allArray(Belt.List.toArray(promises)), a => a->Belt.List.fromArray) |
127 | 123 |
|
128 | 124 | let all2 = (p1, p2) => jsAll((p1, p2))
|
129 | 125 |
|
@@ -265,34 +261,38 @@ let allOkArray = promises => {
|
265 | 261 | huge lists of stale callbacks. This is also true of Promise.race, so we
|
266 | 262 | rely on the quality of the runtime's Promise.race implementation to
|
267 | 263 | proactively remove these callbacks. */
|
268 |
| - race(list{promise, callbackRemover}) |> ( |
| 264 | + |
| 265 | + ( |
269 | 266 | wrapped =>
|
270 | 267 | get(wrapped, result =>
|
271 | 268 | switch result {
|
272 | 269 | | Ok(v) =>
|
273 | 270 | resultValues->Belt.Array.setExn(index, Some(v))
|
274 | 271 | incr(resultCount)
|
275 | 272 | if resultCount.contents >= promiseCount {
|
276 |
| - resultValues->Belt.Array.map(v => |
277 |
| - switch v { |
278 |
| - | Some(v) => v |
279 |
| - | None => assert false |
280 |
| - } |
281 |
| - ) |> (values => resolve(Ok(values))) |
| 273 | + (values => resolve(Ok(values)))( |
| 274 | + resultValues->Belt.Array.map( |
| 275 | + v => |
| 276 | + switch v { |
| 277 | + | Some(v) => v |
| 278 | + | None => assert(false) |
| 279 | + }, |
| 280 | + ), |
| 281 | + ) |
282 | 282 | }
|
283 | 283 | | Error(e) =>
|
284 | 284 | resolve(Error(e))
|
285 | 285 | removeCallbacks(Error(e))
|
286 | 286 | }
|
287 | 287 | )
|
288 |
| - ) |
| 288 | + )(race(list{promise, callbackRemover})) |
289 | 289 | )
|
290 | 290 |
|
291 | 291 | resultPromise
|
292 | 292 | }
|
293 | 293 | }
|
294 | 294 |
|
295 |
| -let allOk = promises => mapOk(allOkArray(Belt.List.toArray(promises)), Belt.List.fromArray) |
| 295 | +let allOk = promises => mapOk(allOkArray(Belt.List.toArray(promises)), a => a->Belt.List.fromArray) |
296 | 296 |
|
297 | 297 | let unsafeAllOkArray = Obj.magic(allOkArray)
|
298 | 298 |
|
@@ -340,8 +340,6 @@ let tapSome = (promise, callback) => {
|
340 | 340 | promise
|
341 | 341 | }
|
342 | 342 |
|
343 |
| -module PipeFirst = { |
344 |
| - |
345 |
| -} |
| 343 | +module PipeFirst = {} |
346 | 344 |
|
347 | 345 | module Js = Js_
|
0 commit comments