Elixir语言中 Task.completed
相关用法介绍如下。
用法:
completed(result)
(从 1.13.0 开始)
@spec completed(any()) :: t()
启动一个使用给定 result
立即完成的任务。
与
不同,此任务不会产生链接进程。它可以像任何其他任务一样被等待或屈服。async/1
用法
在某些情况下,创建一个"completed" 任务来表示已经运行并生成结果的任务很有用。例如,在处理数据时,您可能能够在分派某些输入进行进一步处理之前确定某些输入是无效的:
def process(data) do
tasks =
for entry <- data do
if invalid_input?(entry) do
Task.completed({:error, :invalid_input})
else
Task.async(fn -> further_process(entry) end)
end
end
Task.await_many(tasks)
end
在许多情况下,可以避免使用
,而是直接返回结果。当一组输入将部分同步和部分异步处理时,您通常应该只在使用混合异步时才需要此变体。Task.completed/1
相关用法
- Elixir Task.yield_many用法及代码示例
- Elixir Task.Supervisor.async_stream用法及代码示例
- Elixir Task.async用法及代码示例
- Elixir Task.await_many用法及代码示例
- Elixir Task.Supervisor用法及代码示例
- Elixir Task.Supervisor.start_child用法及代码示例
- Elixir Task.yield用法及代码示例
- Elixir Task.async_stream用法及代码示例
- Elixir Task.Supervisor.async_nolink用法及代码示例
- Elixir Task.Supervisor.start_link用法及代码示例
- Elixir Task.await用法及代码示例
- Elixir Task用法及代码示例
- Elixir Time.add用法及代码示例
- Elixir Time.new用法及代码示例
- Elixir Tuple.duplicate用法及代码示例
- Elixir Time.to_erl用法及代码示例
- Elixir Tuple用法及代码示例
- Elixir Time.utc_now用法及代码示例
- Elixir Tuple.sum用法及代码示例
- Elixir Time.to_iso8601用法及代码示例
- Elixir Time.from_iso8601用法及代码示例
- Elixir Time.from_erl!用法及代码示例
- Elixir Time.from_seconds_after_midnight用法及代码示例
- Elixir Tuple.product用法及代码示例
- Elixir Time.truncate用法及代码示例
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Task.completed(result)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。