2016-06-09 6 views
0

Я совершенно не знаком с Shiny, и я не могу получить textOutput для рендеринга, когда захочу.Shiny - Как сказать клиенту, когда процесс завершен

observeEvent(input$btnPersistencia, { 
    output$txtProtActual <- renderText("PROCESSING...") 
    print("This does print in console") 

    #SomeCodeHere that takes about 10 seconds to finish 

    output$txtProtActual <- renderText(paste("Archivo Persistencia Actual: ", basename(values$file), "\n Dim: ", isolate(input$sliderDimension), "\n Filtr: ", isolate(input$txtMaxFil))) 
}) 

Текст не отображается «Обработка ...», а #SomeCodeHere работает. Я действительно не понимаю, почему. Разве это не работает?

Текст воспроизводится только ПОСЛЕ завершения наблюдения.. Я знаю это, потому что, если я удаляю SECOND renderText(), текст обрабатывает значение «Обработка ...», когда обработка завершена.

Если это нормальное поведение, есть ли способ принудительно выполнить рендеринг перед завершением функции наблюдения?

EDIT:

Есть еще один (любой) способ добиться того, чего я хочу?

+1

Возможно, индикатор выполнения? http://shiny.rstudio.com/articles/progress.html – user5029763

+0

Опубликуйте свой комментарий как полный ответ, и я проверю его как правильный ответ. Это делает именно то, что я хочу. –

ответ

1

проводка моего комментария в качестве ответа (спасибо!)

Статья о Bars Незавершенного here и ссылка here. Вот ваш код с индикатором выполнения:

observeEvent(input$btnPersistencia, { 
    withProgress(message = 'PROCESSING...', value = 0, { 
     incProgress(1/2) 
     #SomeCodeHere that takes about 10 seconds to finish 
     Sys.sleep(10) 
    }) 

    output$txtProtActual <- renderText({ 
    paste("Archivo Persistencia Actual: ", basename(values$file), 
     "\n Dim: ", isolate(input$sliderDimension), 
     "\n Filtr: ", isolate(input$txtMaxFil) 
    ) 
    }) 
}) 

Хотя это не имеет отношения к вашему вопросу, я заметил, как вы разместили output внутри observeEvent с некоторыми isolate оберточной inputs.

Один из блестящих разработчиков говорит о наблюдателях в first two videos of shiny's 2016 conference. Это помогло мне понять намного лучше, как использовать наблюдателей, и я подумал, что вы можете найти это полезным. :]

 Смежные вопросы

  • Нет связанных вопросов^_^