Elixir ProyectWeb.PageLiveView.handle\u info/2中没有匹配的函数子句

Elixir ProyectWeb.PageLiveView.handle\u info/2中没有匹配的函数子句,elixir,phoenix-live-view,Elixir,Phoenix Live View,我不知道如何匹配异步函数和句柄信息 此代码适用于: def order_month() do Task.async(fn -> (1..12) |> Enum.map(fn a -> %{months: a} |> Map.put(:order_months, Proyect.BuyHandler.order_month(a |> Integer.to_string()) |> Enum.map(fn m ->

我不知道如何匹配异步函数和句柄信息

此代码适用于:

def order_month() do
    Task.async(fn ->
      (1..12)
      |> Enum.map(fn a -> %{months: a} |> Map.put(:order_months, Proyect.BuyHandler.order_month(a |> Integer.to_string()) 
      |> Enum.map(fn m -> m |> Proyect.BuyHandler.get_opc() end))end)
      end)


  end
我打算以这种方式接收:

def handle_info({_ref, %{months: month, order_months: order_months}}, socket) do
   {:noreply, assign(socket, %{months: month, order_months: order_months} )}
设计用于产生具有以下特性的结果:

无论您是否希望通过
handle\u info/2
接收返回的结果,您都应该明确地将派生(例如with)进程的结果发送到父进程

您还没有显示
Proyect.BuyHandler.get_opc/1
的代码,但是如果我们假设它进行了简单的转换,我们可能会从那里发送消息(
Task.start/1
应该使用,而不是
Task.async/1
,在这种情况下,可以不链接地启动进程。)按照这些思路可以工作

def order\u month(pid)do
任务。开始(fn->
(1..12)
|>枚举映射(fn a->
%{个月:a,
order_month:Proyect.BuyHandler.order_month(“#{a}”)}
(完)
|>Enum.map(&Proyect.BuyHandler.get\u opc/1)
# ⇓⇓⇓⇓⇓ 这⇓⇓⇓⇓⇓
|>枚举每个(&send(pid和&1))
(完)
结束

在这种情况下,
handle\u info/2
本身可能应该有一个签名
def handle\u info(%{},socket)