diff options
author | Louis Pilfold <louis@lpil.uk> | 2021-08-29 17:35:49 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2021-08-29 17:35:49 +0100 |
commit | 6abcea012a67ab6b4eafc3401b0e1ca6a368e21a (patch) | |
tree | 7c4bdf3020030b9d66b906e077b0221d44c71c2d /src | |
parent | 9f9631eca11ab711c3b5f88b29a0024caca8ea62 (diff) | |
download | javascript-6abcea012a67ab6b4eafc3401b0e1ca6a368e21a.tar.gz javascript-6abcea012a67ab6b4eafc3401b0e1ca6a368e21a.zip |
Promise then_try
Diffstat (limited to 'src')
-rw-r--r-- | src/gleam/javascript/promise.gleam | 13 |
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)) + } + }) +} |