javascript - 如何使用 WebIO 将值从 javascript 发送到 julia?

标签 javascript julia

我正在努力了解如何使用 WebIO。从文档中,这将是一个将值发送到 javascript 的示例:

using WebIO
s = Scope()
obs = Observable(s, "logme", "")
onjs(
    s, "logme",
    js"""
    function(newValue) {
        console.log(newValue);
    }
    """
)

现在,为了测试它,我在 REPL 中运行它,然后是

using Mux
WebIO.webio_serve(
    page("/", req -> s)
)

然后将我的浏览器 (Brave) 指向 localhost:8000 并打开控制台(通过开发人员工具)。此时,我希望在 REPL 中运行 obs[] = "hi there" 会使该消息显示在控制台中。但是没有任何反应。为什么我对预期行为的理解是错误的?我应该怎么做才能让 javascript 控制台记录一条我写入 julia 端可观察对象的消息?

最佳答案

我猜文档中有错误。问题是可观察对象上没有听众。即,julia> obs 返回具有 0 个监听器的 Observable{String}。 您可以通过 WebIO.ensure_sync(s, "logme") 添加监听器>,或者你可以这样写:

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"

然后 Web 控制台打印出值 22。

关于javascript - 如何使用 WebIO 将值从 javascript 发送到 julia?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71661147/

相关文章:

javascript - 在 HTML + CSS 中将对象定位在图像上

javascript - 将元素保持在动态变化面板的底部

javascript - 当所有 child 都被解雇时移除容器

replace - Julia 数据框替换列中的字符

使用 Julia 绘制相关矩阵的热图

julia - Julia:连接字符串和整数

javascript - jQuery 动画在 Firefox 中断断续续

javascript - 使用数组项作为对象中的键时出现意外 token 错误

julia - Julia 中的抽象参数类型

julia - 如何在 Julia 中快速求解多项式方程?