【问题标题】:Elm output port is not working with a signal derived from StartAppElm 输出端口不适用于从 StartApp 派生的信号
【发布时间】:2016-04-01 06:34:34
【问题描述】:

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

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

使用从 Time.every 派生的信号,端口工作(ports/audio.js 中的代码运行)。此外,我们通过 Debug.log 获取“ping”日志。

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

但是,当我们使用从 StartApp 的App.model 派生的信号时,我们会收到一个信号(因为记录了带有 Debug.log 的“ping”日志)但端口到 JS 不起作用(端口/音频中的代码.js 没有运行)?

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

这可能是与 Elm 信号/端口/StartApp 相关的一些基本内容?

【问题讨论】:

    标签: elm elm-signal elm-port


    【解决方案1】:

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

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

    -> 在从 audio.js 中删除 Elm.worker 的东西并将 audio.js 插入到 index.html 的端口实现之后,问题得到了修复。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      • 2011-12-29
      相关资源
      最近更新 更多