如何在不等待其余脚本在R Shiny

时间:2017-08-02 14:15:59

标签: r shiny

我有一个Shiny应用程序应该计算一个值,呈现它然后使用相同的值进行更昂贵的计算。问题是它只在完成对整个脚本的评估后才显示输出。这是一个简单的例子:

library(shiny)
ui <- fluidPage(
  titlePanel("test"),
  sidebarLayout(
    sidebarPanel(
      textInput("text_in","Enter text here",value = "This is text to process"),
      actionButton("go", "Go")
    ),

    mainPanel(
      textOutput("first_text"),
      textOutput("results")
    )
  )
)

# Define server logic 
server <- function(input, output) {

num_letter<-eventReactive(input$go, {
  nchar(input$text_in)})
output$first_text <- renderText(num_letter())

sec_calculation<-eventReactive(num_letter(), {
  Sys.sleep(3)
  num_letter()*num_letter()})
output$first_text <- renderText(num_letter())
output$results <- renderText(sec_calculation())


 }
    # Run the application 
    shinyApp(ui = ui, server = server)

我添加了Sys.sleep,因此更容易看到问题。我想在不等第二个输出的情况下得到第一个输出。

1 个答案:

答案 0 :(得分:1)

目前无法实现这一目标(至少不能使用本机闪亮代码 - 您可以随时修复解决方法)。在闪亮的github存储库中存在一个未解决的问题:https://github.com/rstudio/shiny/issues/1705