查看源代码 Phoenix.LiveView.AsyncResult (Phoenix LiveView v0.20.17)
提供一个数据结构用于跟踪异步分配的状态。
有关更多信息,请参阅 Phoenix.LiveView
文档的 异步操作
部分。
字段
:ok?
- 当为真时,表示:result
已成功设置至少一次。:loading
- 当前的加载状态:failed
- 当前的失败状态:result
- 异步任务的成功结果
摘要
函数
更新失败状态。
失败时,加载状态将重置为 nil
。如果结果之前是 ok?
,则将设置 result
和 failed
。
示例
iex> result = AsyncResult.loading()
iex> result = AsyncResult.failed(result, {:exit, :boom})
iex> result.failed
{:exit, :boom}
iex> result.loading
nil
创建处于加载状态的异步结果。
示例
iex> result = AsyncResult.loading()
iex> result.loading
true
iex> result.ok?
false
更新加载状态。
加载时,失败状态将重置为 nil
。
示例
iex> result = AsyncResult.loading(%{my: :loading_state})
iex> result.loading
%{my: :loading_state}
iex> result = AsyncResult.loading(result)
iex> result.loading
true
更新现有 async_result
的加载状态。
加载时,失败状态将重置为 nil
。如果结果之前是 ok?
,则将设置 result
和 loading
。
示例
iex> result = AsyncResult.loading()
iex> result = AsyncResult.loading(result, %{my: :other_state})
iex> result.loading
%{my: :other_state}
创建成功的结果。
:ok?
字段也将设置为 true
,表示此结果已成功完成至少一次,无论将来状态是否发生变化。
示例
iex> result = AsyncResult.ok("initial result")
iex> result.ok?
true
iex> result.result
"initial result"
更新成功的结果。
:ok?
字段也将设置为 true
,表示此结果已成功完成至少一次,无论将来状态是否发生变化。
确认后,加载和失败状态将重置为 nil
。
示例
iex> result = AsyncResult.loading()
iex> result = AsyncResult.ok(result, "completed")
iex> result.ok?
true
iex> result.result
"completed"
iex> result.loading
nil