2016-05-26 5 views
4

なぜPlatform.Subにフィルタ機能が公開されていないのですか?例えば、一部のキーではイベントを聞くが、他のキーでは聞こえないように、filterMap : (a -> Maybe msg) -> Sub a -> Sub msgのような機能を持たせることは本当に便利です。サブスクリプションをフィルタリングできないのはなぜですか?

この機能を別の方法で実装できますか?いいですか?私はその不在に話すことはできませんが

答えて

4

filterMapは確かに合理的なようだ)、あなたはあなたのupdate関数の前にフィルター/マップを実行して、回避策を持っているし、あなたのフィルターがNothing返すときNoOpメッセージにマップすることができます。

import Maybe 

yourFilterFunction : Msg -> Maybe Msg 
yourFilterFunction = ... 

main = 
    Html.program 
    { init = init 
    , view = view 
    , update = update << Maybe.withDefault NoOp << yourFilterFunction 
    , subscriptions = subscriptions 
    } 

update機能であなたのNoOp場合は、単にmodel ! []を返します。

関連する問題