From 7acdc30e1c744d5435821c37375d5ef136db7230 Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Sun, 29 Aug 2021 19:57:06 +0100 Subject: Promise await_array --- src/ffi.js | 6 +++++- src/gleam/javascript/promise.gleam | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/ffi.js b/src/ffi.js index 07649e9..ded63ae 100644 --- a/src/ffi.js +++ b/src/ffi.js @@ -120,5 +120,9 @@ export function set_reference(ref, value) { } export function all_promises(...promises) { - return Promise.all(promises); + if (promises.length === 1) { + return Promise.all(promises[0]); + } else { + return Promise.all(promises); + } } diff --git a/src/gleam/javascript/promise.gleam b/src/gleam/javascript/promise.gleam index 5e374dd..b0841e0 100644 --- a/src/gleam/javascript/promise.gleam +++ b/src/gleam/javascript/promise.gleam @@ -1,4 +1,5 @@ import gleam/dynamic.{Dynamic} +import gleam/javascript/array.{Array} // TODO: docs // TODO: labels @@ -86,3 +87,6 @@ pub external fn await6( Promise(f), ) -> Promise(#(a, b, c, d, e, f)) = "../../ffi.js" "all_promises" + +pub external fn await_array(Array(Promise(a))) -> Promise(Array(a)) = + "../../ffi.js" "all_promises" -- cgit v1.2.3