为什么我不能过滤订阅?

时间:2016-05-26 13:47:48

标签: elm

为什么Platform.Sub不公开任何过滤功能?像filterMap : (a -> Maybe msg) -> Sub a -> Sub msg这样的函数可以非常方便地监听某些键上的事件而不是其他键上的事件。

这个功能可以用另一种方式实现,这是一个好主意吗?

1 个答案:

答案 0 :(得分:4)

虽然我无法说明其缺席(filterMap当然看似合理),但您可以通过在update函数之前执行过滤器/地图并映射到{{}来解决此问题过滤器返回NoOp时发出的消息:

Nothing

import Maybe yourFilterFunction : Msg -> Maybe Msg yourFilterFunction = ... main = Html.program { init = init , view = view , update = update << Maybe.withDefault NoOp << yourFilterFunction , subscriptions = subscriptions } 函数中的NoOp个案只会返回update