我正在创建一个将管理 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 }
这似乎很愚蠢,并且会为错误增加新的可能性。
任何帮助将不胜感激!