檢視原始碼 Phoenix.LiveView.AsyncResult (Phoenix LiveView v0.20.17)
提供追蹤非同步指定狀態的資料結構。
請參閱 Phoenix.LiveView
文件中的 非同步作業
區段以取得更多資訊。
欄位
:ok?
- 當為 true 時,表示: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