[R-es] Promises Future en shiny no me funciona

Fernando Fernández fern@ndo@fern@ndez@gonz@lez @ending from gm@il@com
Mie Nov 21 09:36:29 CET 2018


En stack overflow veo esta possible explicación :

   -

   An eventReactive creates an object that *you* define like reactive does,
   but with out usual chain-reaction behavior you get from reactive.
   However it is lazily evaluated and cached like the other reactives.
   -

   An observeEvent can not create an object that you define (it creates
   something else). It is immediately evaluated and not cached. It is for
   causing side-effects.

So if you need a data frame, or vector, or plot or something, but want to
decouple from the usual reactive chain-reactions, use eventReactive.

If you just want to cause an immediate side effect, observeEvent is your
ticket


Prueba a usar reactive en lugar de eventReactive y dentro de cada función
reactive tomar una dependencia de input$go.


El mié., 21 nov. 2018 8:48, Jesús Para Fernández <
j.para.fernandez using hotmail.com> escribió:

> Buenas,
>
> Estoy intentando que al ejectuar un boton en shiny me cargue de manera
> asincrona dos consultas. Una es a una consulta sql pesada (tarda 10
> segundos) y la otra es una sql ligera (tarda 0 segundos). Intento que el
> resultado de la consulta ligera se muestre mientras se espera al resulatdo
> de la consulta pesada, pero no lo consigo.
>
> Estoy usando promises con future, en linux, pero no me funciona 🙁 , ya
> que me muestra el ersultado del proceso pesado y el ligero solo cuando se
> ha ejecutado ya el pesado.
>
> Para simular las consultas, eh creado la funcion heavyFunction.... Aqui os
> pongo mi código. ¿Qué creeis que puede estar pasando? Lo curioso es que si
> os fijais en la consola, si que funciona bien.
>
> library(future)
> library(promises)
> plan(multiprocess)
>
> heavyFunction <- function(n){
>   Sys.sleep(n)
>   print(n)
> }
>
>
> ui <- fluidPage(
>   actionButton("go","Show the data"),
>   textOutput("result0sec"),
>   textOutput("result10sec")
>
> )
>
> server <- function(input,output,session){
>
>
>   data0 <- eventReactive(input$go,{
>     heavyFunction(0)
>
>
>   })
>
>   data10 <- eventReactive(input$go,{
>     future(heavyFunction(10))
>
>
>   })
>   output$result0sec <- renderText({
>     data <- data0()
>     print(data)
>   })
>
>
>   output$result10sec <- renderText({
>     data <- data10()
>     data%...>%print()
>   })
>
>
>
>
> }
> shinyApp(ui,server)
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es