promise v0.1.0 Promise View Source
Promise implementation in Elixir.
Installation
The package is available in Hex, it can be installed
by adding :promise
to your list of dependencies in mix.exs
:
def application() do
[
extra_applications: [
:promise,
],
]
end
def deps() do
[
{:promise, "~> 0.1.0"},
]
end
Link to this section Summary
Functions
Returns a new Promise struct
Returns a new Promise struct
Changes on_error
callback of promise
Rejects promise
with specified error
Resolves promise
Appends function into promise
chain
Link to this section Types
Link to this section Functions
Returns a new Promise struct.
Examples
Promise.new({UserRepository, :all})
Promise.new({UserRepository, :get, [1]})
Promise.new(fn -> UserRepository.get(1) end)
Promise.new(fn ->
case UserRepository.get(1) do
%{is_active: false} = user ->
{:reject, user}
user ->
{:resolve, user}
end
end)
Returns a new Promise struct.
Examples
Promise.new(UserRepository, :all)
Promise.new(UserRepository, :get, [1])
Changes on_error
callback of promise
.
Default
fn error -> error end
Examples
Promise.new(UserRepository, :all)
|> Promise.then(fn users -> IO.inspect users end)
|> Promise.on_error(fn error -> IO.inspect(error) end)
Rejects promise
with specified error
.
Examples
Promise.new(UserRepository, :all)
|> Promise.then(fn users -> IO.inspect users end)
|> Promise.on_error(fn error -> IO.inspect(error) end)
|> Promise.resolve()
Resolves promise
.
Examples
Promise.new(UserRepository, :all)
|> Promise.then(fn users -> IO.inspect users end)
|> Promise.on_error(fn error -> IO.inspect(error) end)
|> Promise.resolve()
Appends function into promise
chain.
Examples
Promise.new(UserRepository, :all)
|> Promise.then(fn users -> IO.inspect users end)