繁体   English   中英

Elixir GenServer handle_call回调返回类型

[英]Elixir GenServer handle_call callback return type

我正在实施GenServer,我感到困惑。

我知道handle_cast是异步的,这意味着调用方没有在等待答复,我们将返回这样的元组: {:noreply, new_state}

我注意到我们也可以从handle_call返回相同的元组。 这是否意味着如果我有一个返回{:noreply, new_state}handle_call ,它什么也不会返回,而是会同步的? 调用者的流将等待GenServer.call命令,然后在handle_call函数完成后继续吗?

whenever您调用GenServer.call whenever ,调用方将阻止等待答复。 handle_call接受{:noreply, state}作为有效返回的原因是允许您手动(从任何地方) 回复/ 2

呼叫过程将阻止等待reply (以及超时,具体取决于您的设置等)。

handle_callback的第二个参数是from引用,例如handle_call(msg, from, state) ,然后可以将其与reply/2一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM