aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2021-08-29 19:50:10 +0100
committerLouis Pilfold <louis@lpil.uk>2021-08-29 19:50:44 +0100
commit0f2807706218655c5275dbd208ed390c4918a4c5 (patch)
tree78de8c798474d3d6af3472f51ae0d2c17a4e1b96 /src
parente57c18156cf11aaeae89e66828811c9fcc42fa81 (diff)
downloadjavascript-0f2807706218655c5275dbd208ed390c4918a4c5.tar.gz
javascript-0f2807706218655c5275dbd208ed390c4918a4c5.zip
Promise await{1,6}
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"