我们通过以下设置学习Elm基础知识并使用一些音频输出构建一个简单的应用程序:
使用从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相关的一些基本内容?
答案 0 :(得分:0)
我们的专家朋友发现了这个问题:由于我们在两个地方使用了Elm.main,我们的设置被打破了
Elm.worker(Elm.Main, {});
Elm.fullscreen(Elm.Main)
- >从audio.js中删除Elm.worker之后,将audio.js插入到index.html的端口实现中,事情得到了修复。
(这可能不是案例的完美/最终解决方案,但修复了我们当前设置的问题)