R闪亮-如何在不停止应用程序的情况下打破一个圈?

R闪亮-如何在不停止应用程序的情况下打破一个圈?,r,shiny,R,Shiny,下面的应用程序包含一个action按钮,单击该按钮时会触发一个lappy。lappy循环通过数字2-4,如果x%%2不是0,则停止。是否可以在不停止主应用程序的情况下中断lappy library(shiny) ui <- fluidPage( actionButton(inputId = "go", label = "Start"), div(id = 'placeholder') ) server <- function(input, output, session)

下面的应用程序包含一个
action按钮
,单击该按钮时会触发一个
lappy
lappy
循环通过数字2-4,如果x%%2不是0,则停止。是否可以在不停止主应用程序的情况下中断
lappy

library(shiny)

ui <- fluidPage(
  actionButton(inputId = "go", label = "Start"),
  div(id = 'placeholder')
)

server <- function(input, output, session) {

  observeEvent(input$go, {

    lapply(2:4, function(x) {

      res = x %% 2

      if(res == 0){

        return(x)

      } else {

        insertUI('#placeholder', ui = tags$p('There was an error.'))

        stop('Error')
      }
    })
  })

}

shinyApp(ui = ui, server = server)
库(闪亮)

ui根据应用程序中的具体要求,可能您可以使用“正常”循环并使用
break
停止循环执行。或者,您可以将其包装在一个
try
调用中:

server <- function(input, output, session) {

  observeEvent(input$go, {

    try(lapply(2:4, function(x) {

      res = x %% 2

      if(res == 0){

        return(x)

      } else {

        insertUI('#placeholder', ui = tags$p('There was an error.'))

        stop('Error')
      }
    }), silent=T)
  })

}
服务器