香草中的榆树信号 JavaScript?

Elm Signals in Vanilla JavaScript?

我知道可以在 vanilla JS 中实现信号/可观察对象/流,因为 Elm 可以编译回 JS。

任何人都可以提供一个信号转换成 JS 的例子吗?它必须使用回调结构吗?例如,Elm 将其翻译成什么?

    main =
       Signal.map show Mouse.position

你放的简单代码并没有转化为简单的JS回调结构。 Elm 运行时比这稍微复杂一点。但是,如果你真的想获得更好的理解,你可以看看Native implementation of Signal

以一种非常粗略的方式,您可以认为这等同于:

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