Javascript 将数据作为初始命令发送到Elm中的端口

Javascript 将数据作为初始命令发送到Elm中的端口,javascript,elm,ports,Javascript,Elm,Ports,我有一个传出端口,定义如下: port errors : List String -> Cmd msg 然后我用以下方式定义我的程序: init : Flags -> (Model, Cmd Msg) init flags = ( initialModel flags, errors [ "an error" ] ) main : Program Flags Model Msg main = Html.programWithFlags { init = init

我有一个传出端口,定义如下:

port errors : List String -> Cmd msg
然后我用以下方式定义我的程序:

init : Flags -> (Model, Cmd Msg)
init flags =
  ( initialModel flags, errors [ "an error" ] )

main : Program Flags Model Msg
main =
  Html.programWithFlags
    { init = init
    , view = view
    , update = update
    , subscriptions = subscriptions
    }

它编译并运行,但在javascript方面,我没有看到第一条消息。当然,如果我进一步与应用程序交互,我会看到特定端口发送数据,因此我确信它工作正常。

只是一个疑问:可能是Elm和JS之间存在竞速情况?因为我正在使用MutationObserver在访问端口(然后订阅)之前访问。我写了一个脚本来尝试复制它,但它工作正常,所以是的,也许你在js中做的其他事情会产生干扰。实际上,您是对的,我很惊讶您的示例能够正常工作:据我所知,调用
Elm.Main.fullscreen
(我使用的是
embed
,但应该是相同的)。使用“嵌入”也可以按预期工作。