當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。