Elm语言Outgoing

示例

出站端口用作命令,从update功能中返回。

榆木边

定义输出端口:

port output : () -> Cmd msg

在此示例中,我们发送了一个空的Tuple,只是为了触发JavaScript端的订阅。

为此,我们必须应用output带有空Tuple作为参数的函数,以获得从Elm发送输出数据的命令。

update msg model =
    case msg of
        TriggerOutgoing data ->
            ( model, output () )

JavaScript方面

初始化应用程序:

var root = document.body;
var app = Elm.Main.embed(root);

订阅具有相应名称的端口:

app.ports.output.subscribe(function () {
    alert('Outgoing message from Elm!');
});

注意

截至0.17.0,从您的initial状态到JavaScript的立即传出消息将无效。

init : ( Model, Cmd Msg )
init =
    ( Model 0, output () ) -- Nothing will happen

请参阅下面的示例中的解决方法。