檢視原始碼 Phoenix.LiveView.AsyncResult (Phoenix LiveView v0.20.17)

提供追蹤非同步指定狀態的資料結構。

請參閱 Phoenix.LiveView 文件中的 非同步作業 區段以取得更多資訊。

欄位

  • :ok? - 當為 true 時,表示 :result 已成功設定至少一次。
  • :loading - 目前的載入狀態
  • :failed - 目前的失敗狀態
  • :result - 非同步作業成功的結果

摘要

函式

更新失敗狀態。

建立載入狀態的非同步結果。

更新載入狀態。

更新現有 async_result 的載入狀態。

建立成功的結果。

更新成功的結果。

函式

連結到此函式

failed(result, reason)

檢視原始碼

更新失敗狀態。

當失敗時,載入狀態將重置為 nil。如果結果先前為 ok?resultfailed 將同時設定。

範例

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
連結到此函式

loading(result, loading_state)

檢視原始碼

更新現有 async_result 的載入狀態。

當載入時,失敗狀態將重置為 nil。如果結果先前為 ok?resultloading 將同時設定。

範例

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