当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir GenServer.reply用法及代码示例


Elixir语言中 GenServer.reply 相关用法介绍如下。

用法:

reply(client, reply)
@spec reply(from(), term()) :: :ok

回复客户。

当无法在 handle_call/3 的返回值中指定回复时,此函数可用于显式向调用 call/3 multi_call/4 的客户端发送回复。

client 必须是 handle_call/3 回调接受的 from 参数(第二个参数)。 reply 是一个任意术语,它将作为调用的返回值返回给客户端。

请注意,可以从任何进程调用 reply/2 ,而不仅仅是最初接收调用的GenServer(只要GenServer以某种方式传达from参数)。

此函数始终返回 :ok

例子

def handle_call(:reply_in_one_second, from, state) do
  Process.send_after(self(), {:reply, from}, 1_000)
  {:noreply, state}
end

def handle_info({:reply, from}, state) do
  GenServer.reply(from, :one_second_has_passed)
  {:noreply, state}
end

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 GenServer.reply(client, reply)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。