Elixir语言中 Agent.start_link
相关用法介绍如下。
用法:
start_link(fun, options \\ [])
@spec start_link((() -> term()), GenServer.options()) :: on_start()
使用给定函数启动与当前进程链接的代理。
这通常用于启动代理作为监督树的一部分。
生成代理后,将在服务器进程中调用给定的函数fun
,并应返回初始代理状态。请注意,在给定函数返回之前,
不会返回。start_link/2
选项
:name
选项用于注册,如模块文档中所述。
如果存在 :timeout
选项,则允许代理最多花费给定的毫秒数进行初始化,否则它将被终止并且启动函数将返回 {:error, :timeout}
。
如果:debug
选项存在,相应的函数在:sys
模块将被调用。
如果存在 :spawn_opt
选项,则其值将作为选项传递给底层进程,如
。Process.spawn/4
返回值
如果服务器创建和初始化成功,该函数返回 {:ok, pid}
,其中 pid
是服务器的 PID。如果具有指定名称的代理已存在,则该函数返回带有该进程 PID 的{:error, {:already_started, pid}}
。
如果给定的函数回调失败,则函数返回 {:error, reason}
。
例子
iex> {:ok, pid} = Agent.start_link(fn -> 42 end)
iex> Agent.get(pid, fn state -> state end)
42
iex> {:error, {exception, _stacktrace}} = Agent.start(fn -> raise "oops" end)
iex> exception
%RuntimeError{message: "oops"}
相关用法
- Elixir Agent.start用法及代码示例
- Elixir Agent.stop用法及代码示例
- Elixir Agent.get_and_update用法及代码示例
- Elixir Agent.get用法及代码示例
- Elixir Agent.cast用法及代码示例
- Elixir Agent.update用法及代码示例
- Elixir Agent用法及代码示例
- Elixir Application.get_env用法及代码示例
- Elixir Application用法及代码示例
- Elixir Access.filter用法及代码示例
- Elixir Access.all用法及代码示例
- Elixir Atom用法及代码示例
- Elixir Atom.to_string用法及代码示例
- Elixir Access.key用法及代码示例
- Elixir Access.get用法及代码示例
- Elixir Access.key!用法及代码示例
- Elixir Atom.to_charlist用法及代码示例
- Elixir Access.fetch用法及代码示例
- Elixir Access.at!用法及代码示例
- Elixir Access.at用法及代码示例
- Elixir Access用法及代码示例
- Elixir Access.fetch!用法及代码示例
- Elixir Application.ensure_started用法及代码示例
- Elixir Access.elem用法及代码示例
- Elixir Access.pop用法及代码示例
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Agent.start_link(fun, options \\ [])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。