Phoenix.LiveView.AsyncResult
Исходный кодПредоставляет структуру данных для отслеживания состояния асинхронного присваивания.
Дополнительную информацию см. в разделе Async Operations документации Phoenix.LiveView.
Поля
-
:ok?— если значение равно true, это означает, что:resultуспешно устанавливалось хотя бы один раз. -
:loading— текущее состояние загрузки -
:failed— текущее состояние ошибки -
:result— успешный результат асинхронной задачи
Сводка
- failed(result, reason)
Обновляет состояние ошибки.
- loading()
Создаёт асинхронный результат в состоянии загрузки.
- loading(result)
Обновляет состояние загрузки.
- loading(result, loading_state)
Обновляет состояние загрузки существующего
async_result.- ok(value)
Создаёт успешный результат.
- ok(result, value)
Обновляет успешный результат.
Функции
Функции
failed(result, reason)Исходный код
Обновляет состояние ошибки.
При ошибке состояние загрузки сбрасывается в nil. Если ранее результат имел состояние ok?, устанавливаются и result, и failed.
Примеры
iex> result = AsyncResult.loading()
iex> result = AsyncResult.failed(result, {:exit, :boom})
iex> result.failed
{:exit, :boom}
iex> result.loading
nil loading()Исходный код
Создаёт асинхронный результат в состоянии загрузки.
Примеры
iex> result = AsyncResult.loading() iex> result.loading true iex> result.ok? false
loading(result)Исходный код
Обновляет состояние загрузки.
При загрузке состояние ошибки сбрасывается в 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?, устанавливаются и result, и loading.
Примеры
iex> result = AsyncResult.loading()
iex> result = AsyncResult.loading(result, %{my: :other_state})
iex> result.loading
%{my: :other_state} ok(value)Исходный код
Создаёт успешный результат.
Поле :ok? также устанавливается в true, чтобы указать, что этот результат хотя бы один раз был успешно завершён, независимо от будущих изменений состояния.
Примеры
iex> result = AsyncResult.ok("initial result")
iex> result.ok?
true
iex> result.result
"initial result" ok(result, value)Исходный код
Обновляет успешный результат.
Поле :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
© 2014 Chris McCord
Licensed under the MIT License.
https://phoenix-live-view.hexdocs.pm/Phoenix.LiveView.AsyncResult.html