停止reduce_while与元组

问题描述:

我想停止reduce_while当我的函数来获取{:错误,原因},而不是虚假停止reduce_while与元组

我的代码是:

Enum.reduce_while(
     [1,2,3,4], 
     0, 
     fn filename, _foo -> 
     if carica() do 
      IO.puts "OK" 
      {:cont, carica()} 
     else 
      IO.puts "KO" 
      {:halt, carica()} 
     end 
     end 
    ) 

    def carica() do 
    {:error,"ERROR!!!!!"} 
    end 

我要像

"KO" 
{:error,"ERROR"} 
一个输出

因为这样我就有

OK 
OK 
OK 
OK 
{:error, "ERROR!!!!!"} 

如果要与来自功能的响应匹配,请使用case

case response = carica() do 
    {:error, reason} -> 
    IO.puts "KO" 
    {:halt, response} 
    _ -> 
    IO.puts "OK" 
    {:cont, response} 
end