1

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 へのポートは機能しません (ports/audio.js のコードは実行されません)。 )?

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

これは、Elm シグナル/ポート/StartApp に関連するいくつかの基本的なことでしょうか?

4

1 に答える 1

0

私たちの専門家の友人が問題を発見しました: Elm.main を 2 か所で使用したため、セットアップが壊れていました。

  • ports/audio.js が持っていたElm.worker(Elm.Main, {});
  • index.htmlにはスクリプトがありましたElm.fullscreen(Elm.Main)

-> Elm.worker を audio.js から削除し、audio.js を index.html の port 実装にプラグインした後、修正されました。

(これはおそらく、ケースの完全な/最終的な解決策ではありませんが、現在のセットアップの問題を修正しました)

于 2016-04-01T07:45:57.853 に答える