View Source Absinthe.Middleware.Async (absinthe v1.7.0)
This plugin enables asynchronous execution of a field.
See also Absinthe.Resolution.Helpers.async/1
Example Usage:
Using the Absinthe.Resolution.Helpers.async/1
helper function:
field :time_consuming, :thing do
resolve fn _, _, _ ->
async(fn ->
{:ok, long_time_consuming_function()}
end)
end
end
Using the bare plugin API
field :time_consuming, :thing do
resolve fn _, _, _ ->
task = Task.async(fn ->
{:ok, long_time_consuming_function()}
end)
{:middleware, Elixir.Absinthe.Middleware.Async, task}
end
end
This module also serves as an example for how to build middleware that uses the resolution callbacks.
See the source code and associated comments for further details.
Link to this section Summary
Functions
Callback implementation for Absinthe.Plugin.after_resolution/1
.
Callback implementation for Absinthe.Plugin.before_resolution/1
.
Callback implementation for Absinthe.Middleware.call/2
.
Callback implementation for Absinthe.Plugin.pipeline/2
.
Link to this section Functions
Callback implementation for Absinthe.Plugin.after_resolution/1
.
Callback implementation for Absinthe.Plugin.before_resolution/1
.
Callback implementation for Absinthe.Middleware.call/2
.
Callback implementation for Absinthe.Plugin.pipeline/2
.