aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2021-08-29 17:35:49 +0100
committerLouis Pilfold <louis@lpil.uk>2021-08-29 17:35:49 +0100
commit6abcea012a67ab6b4eafc3401b0e1ca6a368e21a (patch)
tree7c4bdf3020030b9d66b906e077b0221d44c71c2d /src
parent9f9631eca11ab711c3b5f88b29a0024caca8ea62 (diff)
downloadjavascript-6abcea012a67ab6b4eafc3401b0e1ca6a368e21a.tar.gz
javascript-6abcea012a67ab6b4eafc3401b0e1ca6a368e21a.zip
Promise then_try
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 7e3670a..8407c8c 100644
--- a/src/gleam/javascript/promise.gleam
+++ b/src/gleam/javascript/promise.gleam
@@ -31,3 +31,16 @@ pub fn map_try(
}
})
}
+
+pub fn then_try(
+ promise: Promise(Result(a, e)),
+ callback: fn(a) -> Promise(Result(b, e)),
+) -> Promise(Result(b, e)) {
+ promise
+ |> then(fn(result) {
+ case result {
+ Ok(a) -> callback(a)
+ Error(e) -> resolve(Error(e))
+ }
+ })
+}