繁体   English   中英

如何在 R-Shiny 中实现未来功能

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM