我正在创建一个管理API连接的包(oauth2)。
包连接到API,获取一些票证值并将它们存储在全局函数句柄中:
handle <- function(login-details) { api-call }
每当你需要通过api获取数据时,你都可以通过句柄来完成:
getData <- function(handle) { foo }
但是,存储在句柄中的票证值会过期,并且需要通过API通过一些刷新变量刷新句柄。
问题是,我该怎么做?我无法从getData-function中更新句柄。除非我使用一些黑客(assign() - 函数与全局环境)。
必须有一些最佳做法吗?我应该创建一个函数来测试句柄是否是新鲜的,然后返回句柄,如果没有,刷新句柄?像:
handle <- prepare(handle)
getData <- function(handle) { foo }
这看起来很愚蠢,并且会增加错误的新可能性。
非常感谢任何帮助!