aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gleam/javascript/promise.gleam13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gleam/javascript/promise.gleam b/src/gleam/javascript/promise.gleam
index 2437dc0..7e3670a 100644
--- a/src/gleam/javascript/promise.gleam
+++ b/src/gleam/javascript/promise.gleam
@@ -18,3 +18,16 @@ pub fn tap(promise: Promise(a), callback: fn(a) -> b) -> Promise(a) {
a
})
}
+
+pub fn map_try(
+ promise: Promise(Result(a, e)),
+ callback: fn(a) -> Result(b, e),
+) -> Promise(Result(b, e)) {
+ promise
+ |> map(fn(result) {
+ case result {
+ Ok(a) -> callback(a)
+ Error(e) -> Error(e)
+ }
+ })
+}