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