【发布时间】:2018-10-14 22:57:20
【问题描述】:
我的 GenServer 中有一个状态原子数组。我不想只弹出队列中的最后一项,我想一次弹出所有状态。
当前代码(不工作)
defmodule ScoreTableQueue do
use GenServer
@impl true
def init(stack) do
{:ok, stack}
end
@impl true
def handle_call(:pop, _from, [state]) do
{:reply, [state]}
end
@impl true
def handle_cast({:push, item}, state) do
{:noreply, [item | state]}
end
end
GenServer 状态:
{:status, #PID<0.393.0>, {:module, :gen_server},
[
[
"$initial_call": {ScoreTableQueue, :init, 1},
"$ancestors": [#PID<0.383.0>, #PID<0.74.0>]
],
:running,
#PID<0.393.0>,
[],
[
header: 'Status for generic server <0.393.0>',
data: [
{'Status', :running},
{'Parent', #PID<0.393.0>},
{'Logged events', []}
],
data: [{'State', [:code, :hello, :world]}]
]
]}
当我打电话给GenServer.call(pid, :pop) 时,我想返回[:code, :hello, :world] 我该怎么做?
【问题讨论】:
标签: elixir