[英]How to implement future function in R-Shiny
我如何使用未来功能
#Final Report output
output$repTable <- renderFormattable({
future({getFinalReportData()}) %...>% {
formattable()
}
})
使用上面的代码会导致以下错误:
警告:UseMethod 错误:“as.htmlwidget”没有适用的方法应用于类“promise”96:formattable::as.htmlwidget 95:func 82:origRenderFunc 81:output$repTable 1:runApp
未处理的承诺错误:没有活动的反应性上下文时不允许操作。 (你试图做一些只能从反应式表达式或观察者内部完成的事情。)
您不能在以后的调用中添加反应式表达式/值(查看这篇文章)。
除了所有 future 都面临的限制之外,Shiny 还有一个额外的限制:不能从 future 中读取反应值和反应表达式。 每当读取反应值/表达式时,都会在后台执行副作用,以便当反应值/表达式无效时可以通知当前正在执行的观察者或反应表达式。 如果在一个进程中创建了一个反应值/表达式,但在另一个进程中读取,则读者将无法收到有关失效的通知。
您可以做的是首先将反应式表达式输出绑定到一个变量,并在您以后的调用中使用它:
#Final Report output
output$repTable <- renderFormattable({
data <- getFinalReportData()
future(data) %...>% formattable()
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.