From 0f2807706218655c5275dbd208ed390c4918a4c5 Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Sun, 29 Aug 2021 19:50:10 +0100 Subject: Promise await{1,6} --- src/ffi.js | 4 ++++ src/gleam/javascript/promise.gleam | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) (limited to 'src') 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" -- cgit v1.2.3