将变量存储在模块中

0xA*_*ffe 5 elixir phoenix-framework

我以为这是一个非常基本的问题,但在网上搜索后,我找不到解决方案。

我想将变量存储在某处并稍后在函数中引用它。

我想解决的问题如下:
我执行一个 HTTP 请求来获取 API 的访问令牌。该令牌仅在一段时间内有效,我只想在旧令牌过期时获得新令牌。我需要这个令牌来执行其他请求。
因此,我必须将令牌及其有效时间存储在某个地方,以便在其他函数中访问它,我可以在其中处理其他请求。

Rom*_*nov 3

该令牌仅在一段时间内有效,我只想在旧令牌过期时获取新令牌

使用 ets 模块进行此类操作:http://elixir-lang.org/getting-started/mix-otp/ets.html

Elixir(以及其他函数式语言)中没有全局/模块变量,因为这些变量会导致竞争条件。