Elm输出端口无法使用从StartApp

时间:2016-04-01 06:34:34

标签: elm elm-signal elm-port

我们通过以下设置学习Elm基础知识并使用一些音频输出构建一个简单的应用程序:

  • 我们正在使用Elm的StartApp。
  • 我们有ports / audio.js和一些POC音频逻辑(和console.log)。
  • ATM我们正在使用elm-live来运行该应用程序。

使用从Time.every派生的信号端口工作(运行ports / audio.js中的代码)。另外,我们得到了" ping"使用Debug.log记录日志。

port audio : Signal Int
port audio =
  Signal.map (always 400) (Time.every Time.second)
  |> Signal.map (Debug.log "ping")

但是,当我们使用从StartApp' App。模型派生的信号时,我们会得到一个信号(因为" ping"记录了Debug.log的日志)但是端口到JS没有工作(ports / audio.js中的代码没有运行)?

port audio : Signal Int
port audio =
  Signal.map (always 400) signalDerivedFromStartApp
  |> Signal.map (Debug.log "ping")

这可能是与Elm signals / ports / StartApp相关的一些基本内容?

1 个答案:

答案 0 :(得分:0)

我们的专家朋友发现了这个问题:由于我们在两个地方使用了Elm.main,我们的设置被打破了

  • ports / audio.js有Elm.worker(Elm.Main, {});
  • index.html包含Elm.fullscreen(Elm.Main)
  • 的脚本

- >从audio.js中删除Elm.worker之后,将audio.js插入到index.html的端口实现中,事情得到了修复。

(这可能不是案例的完美/最终解决方案,但修复了我们当前设置的问题)