aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ffi.js4
-rw-r--r--src/gleam/javascript/promise.gleam37
2 files changed, 41 insertions, 0 deletions
diff --git a/src/ffi.js b/src/ffi.js
index d7b6bf9..07649e9 100644
--- a/src/ffi.js
+++ b/src/ffi.js
@@ -118,3 +118,7 @@ export function set_reference(ref, value) {
ref.value = value;
return previous;
}
+
+export function all_promises(...promises) {
+ return Promise.all(promises);
+}
diff --git a/src/gleam/javascript/promise.gleam b/src/gleam/javascript/promise.gleam
index 3c7190c..5e374dd 100644
--- a/src/gleam/javascript/promise.gleam
+++ b/src/gleam/javascript/promise.gleam
@@ -49,3 +49,40 @@ pub fn then_try(
}
})
}
+
+pub external fn await2(Promise(a), Promise(b)) -> Promise(#(a, b)) =
+ "../../ffi.js" "all_promises"
+
+pub external fn await3(
+ Promise(a),
+ Promise(b),
+ Promise(c),
+) -> Promise(#(a, b, c)) =
+ "../../ffi.js" "all_promises"
+
+pub external fn await4(
+ Promise(a),
+ Promise(b),
+ Promise(c),
+ Promise(d),
+) -> Promise(#(a, b, c, d)) =
+ "../../ffi.js" "all_promises"
+
+pub external fn await5(
+ Promise(a),
+ Promise(b),
+ Promise(c),
+ Promise(d),
+ Promise(e),
+) -> Promise(#(a, b, c, d, e)) =
+ "../../ffi.js" "all_promises"
+
+pub external fn await6(
+ Promise(a),
+ Promise(b),
+ Promise(c),
+ Promise(d),
+ Promise(e),
+ Promise(f),
+) -> Promise(#(a, b, c, d, e, f)) =
+ "../../ffi.js" "all_promises"