Me cuesta entender cómo usar WebIO . De la documentación, este sería un ejemplo para enviar valores a javascript:
using WebIO s = Scope() obs = Observable(s, "logme", "") onjs( s, "logme", js""" function(newValue) { console.log(newValue); } """ )Ahora, para probar esto, lo ejecuto en REPL seguido de
using Mux WebIO.webio_serve( page("/", req -> s) ) luego apunte mi navegador (Brave) a localhost: 8000 y abra la consola (a través de las herramientas de desarrollo). En este punto, espero que ejecutar obs[] = "hi there" en el REPL haga que ese mensaje aparezca en la consola. Pero nada pasa. ¿Por qué mi comprensión del comportamiento esperado es incorrecta? ¿Qué debo hacer para que la consola de javascript registre un mensaje que escribo en un observable en el lado de julia?
Supongo que hay un error en la documentación. El problema es que no hay oyentes en el observable. Es decir, julia> obs devuelve Observable{String} with 0 listeners. Puede agregar un oyente mediante WebIO.ensure_sync(s, "logme") , o puede escribirlo así:
using Mux, WebIO, JSExpr s = Scope() obs = Observable(s, "logme", "") onjs(obs, js""" function(newValue) { console.log(newValue); } """ ) webio_serve(page("/", req -> s), 8000) obs[] = "22"Luego, la consola web imprime el valor 22.
Prueba esto Te ayudará
WebIO.webio_serve( página("/", req -> s) )