Tan*_*ano 1 elixir gen-server
我正在实施一个GenServer,我很困惑.
我知道handle_cast是异步的,这意味着调用者不等待回复,我们返回一个这样的元组:{:noreply, new_state}.
handle_cast
{:noreply, new_state}
我注意到我们也可以从中返回相同的元组handle_call.这是否意味着如果我有一个handle_call返回{:noreply, new_state},它不会返回任何东西但会同步?调用者的流程将等待GenServer.call命令,然后在handle_call函数完成后继续?
handle_call
GenServer.call
m3c*_*ers 5
调用者将阻止等待whenever您调用GenServer.call 的回复.handle_call接受{:noreply, state}作为有效回报的原因是允许您手动(从任何地方)回复/ 2.
whenever
{:noreply, state}
调用进程将阻止等待reply(并根据您的设置等超时),同样如此.
reply
第二个参数handle_callback是一个from引用,如下所示handle_call(msg, from, state),可以与之一起使用reply/2.
handle_callback
from
handle_call(msg, from, state)
reply/2
归档时间:
7 年,2 月 前
查看次数:
96 次
最近记录: