Elixir语言中 Agent.get_and_update
相关用法介绍如下。
用法:
get_and_update(agent, fun, timeout \\ 5000)
@spec get_and_update(agent(), (state() -> {a, state()}), timeout()) :: a when a: var
通过给定的匿名函数在一个操作中获取和更新代理状态。
函数fun
被发送到调用传递代理状态的函数的agent
。该函数必须返回一个包含两个元素的元组,第一个是要返回的值(即 "get" 值),第二个是代理的新状态。
timeout
是一个大于零的整数,它指定在代理执行函数并返回结果值之前允许多少毫秒,或者原子:infinity
无限期等待。如果在指定时间内没有收到结果,则函数调用失败,调用者退出。
例子
iex> {:ok, pid} = Agent.start_link(fn -> 42 end)
iex> Agent.get_and_update(pid, fn state -> {state, state + 1} end)
42
iex> Agent.get(pid, fn state -> state end)
43
相关用法
- Elixir Agent.get用法及代码示例
- Elixir Agent.cast用法及代码示例
- Elixir Agent.start_link用法及代码示例
- Elixir Agent.update用法及代码示例
- Elixir Agent.stop用法及代码示例
- Elixir Agent.start用法及代码示例
- 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.get_and_update(agent, fun, timeout \\ 5000)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。