aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gleam/javascript/promise.gleam9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/gleam/javascript/promise.gleam b/src/gleam/javascript/promise.gleam
index 4f8d54c..2437dc0 100644
--- a/src/gleam/javascript/promise.gleam
+++ b/src/gleam/javascript/promise.gleam
@@ -1,4 +1,5 @@
// TODO: docs
+// TODO: labels
pub external type Promise(value)
pub external fn resolve(value) -> Promise(value) =
@@ -9,3 +10,11 @@ pub external fn then(Promise(a), fn(a) -> Promise(b)) -> Promise(b) =
pub external fn map(Promise(a), fn(a) -> b) -> Promise(b) =
"../../ffi.js" "map_promise"
+
+pub fn tap(promise: Promise(a), callback: fn(a) -> b) -> Promise(a) {
+ promise
+ |> map(fn(a) {
+ callback(a)
+ a
+ })
+}