3

我正在创建一个将管理 API 连接(oauth2)的包。

该包连接到 API,获取一些票据值并将它们存储在全局函数句柄中:

handle <- function(login-details) { api-call }

每当您需要通过 api 获取数据时,您都可以通过句柄来完成:

getData <- function(handle) { foo }

但是,handle 中存储的票证值过期,需要通过 API 使用一些 refresh-variables 来刷新句柄。

问题是,我该怎么做?我无法从 getData 函数中更新句柄。除非我使用一些技巧(全局环境中的 assign() 函数),否则不会。

必须有一些最佳实践吗?我应该创建一个函数来测试句柄是否新鲜,然后返回句柄,如果不是,刷新句柄?喜欢:

handle <- prepare(handle)

getData <- function(handle) { foo }

这似乎很愚蠢,并且会为错误增加新的可能性。

任何帮助将不胜感激!

4

0 回答 0