aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2021-08-29 19:57:06 +0100
committerLouis Pilfold <louis@lpil.uk>2021-08-29 19:57:06 +0100
commit7acdc30e1c744d5435821c37375d5ef136db7230 (patch)
tree9f7a112f405535a6e9df9678c65977a75a2d86a8 /src
parent0f2807706218655c5275dbd208ed390c4918a4c5 (diff)
downloadjavascript-7acdc30e1c744d5435821c37375d5ef136db7230.tar.gz
javascript-7acdc30e1c744d5435821c37375d5ef136db7230.zip
Promise await_array
Diffstat (limited to 'src')
-rw-r--r--src/ffi.js6
-rw-r--r--src/gleam/javascript/promise.gleam4
2 files changed, 9 insertions, 1 deletions
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"