Elixir Task.async|u stream |>;什么时候下车?

Elixir Task.async|u stream |>;什么时候下车?,elixir,Elixir,我有一条管道,看起来像 digits |> Task.async_stream(__MODULE__, :filter, [s, values], timeout: :infinity) |> Stream.drop_while(fn {_, k} -> k == :contradiction or k == [] end) |> Stream.take(1) 这里是否定义了任何顺序?或者只是返回不满足while条件的第一个过滤器的结果将被返回?Task.async\u

我有一条管道,看起来像

digits
|> Task.async_stream(__MODULE__, :filter, [s, values], timeout: :infinity)
|> Stream.drop_while(fn {_, k} -> k == :contradiction or k == [] end)
|> Stream.take(1)

这里是否定义了任何顺序?或者只是返回不满足while条件的第一个
过滤器的结果将被返回?

Task.async\u stream
为此:
有序:true | false
。如果设置为true,结果将与输入列表的顺序相同。如果为false,则结果将按照任务完成的顺序。此选项的值默认为
true
,因此在代码中,结果的顺序与输入列表的顺序相同

iex(1)> [5, 4, 3, 2, 1] |> Task.async_stream(fn x -> :timer.sleep(x * 100); x end) |> Enum.to_list
[ok: 5, ok: 4, ok: 3, ok: 2, ok: 1]
iex(2)> [5, 4, 3, 2, 1] |> Task.async_stream(fn x -> :timer.sleep(x * 100); x end, ordered: false) |> Enum.to_list
[ok: 1, ok: 2, ok: 3, ok: 4, ok: 5]