如何使用 WebIO 将值从 javascript 发送到 julia?
How to send values from javascript to julia using WebIO?
我很难理解如何使用 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 中的 运行ning obs[] = "hi there"
会使该消息显示在控制台中。但是没有任何反应。为什么我对预期行为的理解是错误的?我应该怎么做才能使 javascript 控制台记录一条我写入 julia 端可观察对象的消息?
我想文档中有错误。问题是可观察对象上没有听众。即,julia> obs
returns Observable{String} with 0 listeners.
可以通过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。
试试这个 会有帮助
WebIO.webio_serve(
页面(“/”,请求 - > s)
)
我很难理解如何使用 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 中的 运行ning obs[] = "hi there"
会使该消息显示在控制台中。但是没有任何反应。为什么我对预期行为的理解是错误的?我应该怎么做才能使 javascript 控制台记录一条我写入 julia 端可观察对象的消息?
我想文档中有错误。问题是可观察对象上没有听众。即,julia> obs
returns Observable{String} with 0 listeners.
可以通过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。
试试这个 会有帮助
WebIO.webio_serve( 页面(“/”,请求 - > s) )