如何使用将来的功能
#Final Report output
output$repTable <- renderFormattable({
future({getFinalReportData()}) %...>% {
formattable()
}
})
使用上面的代码将导致以下错误:
警告:UseMethod中的错误:'as.htmlwidget'没有适用的方法应用于“ promise”类的对象96:formattable :: as.html小部件95:功能82:origRenderFunc81:输出$ repTable1:runApp
未处理的承诺错误:如果没有激活,则不允许进行操作反应性上下文。 (您尝试做只能做的事情从反应式表达式或观察者内部。)
您无法在以后的调用(check this article)中添加反应性表达式/值。
除了所有期货都面临的约束之外,Shiny还有另外一个约束:不能从期货中读取反应性值和反应性表达式。每当读取无功值/表达式时,都会在后台进行副作用,以便在无功值/表达式无效时可以通知当前正在执行的观察者或无功表达式。如果在一个过程中创建了反应性值/表达式,但在另一个过程中进行了读取,则将无法通知读者有关无效的信息。
您可以做的是首先将反应表达式输出绑定到变量,并在以后的调用中使用它:
#Final Report output
output$repTable <- renderFormattable({
data <- getFinalReportData()
future(data) %...>% formattable()
})