[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