【发布时间】:2016-03-02 17:19:38
【问题描述】:
我知道可以在 vanilla JS 中实现信号/observables/流,因为 Elm 会编译回 JS。
谁能提供一个将信号转换为 JS 的示例?它必须使用回调结构对吗?例如,Elm 将其翻译成什么?
main =
Signal.map show Mouse.position
【问题讨论】:
标签: javascript signals elm
我知道可以在 vanilla JS 中实现信号/observables/流,因为 Elm 会编译回 JS。
谁能提供一个将信号转换为 JS 的示例?它必须使用回调结构对吗?例如,Elm 将其翻译成什么?
main =
Signal.map show Mouse.position
【问题讨论】:
标签: javascript signals elm
以一种非常粗略的方式,您可以认为这相当于:
document.onmousemove = handleMouseMove;
function handleMouseMove(event) {
//...extract x and y from event somehow
show([x, y])
}
但在 Elm 中发生了更多事情,它更类似于 RXjs 中的可观察对象https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/observable.md
【讨论】:
你放的简单代码在 JS 中并没有转化为简单的回调结构。 Elm 运行时比这要复杂一些。不过,如果你真的想深入了解,可以看看Native implementation of Signal。
【讨论】: