我似乎得到了这个错误
Trying to send an unsupported type through outbound port `projectRequests`
port projectRequests : Signal (Maybe (Task String ()))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The specific unsupported type is:
Task.Task String ()
The types of values that can flow through outbound ports include: Ints, Floats, Bools, Strings, Maybes, Lists, Arrays, Tuples, Json.Values, and concrete records.
然而这似乎很好
port orgRequests : Signal (Task String ())
我很困惑这里发生了什么。
答案 0 :(得分:5)
有两种方法可以使用port:
Task
发送到要安排执行的运行时。在这种情况下,您的Maybe
周围有数据(Task
),因此编译器假设(错误地*)您希望将端口用于#1目的。
如果您要执行Task
上Just
所包含的Signal
并且Nothing
上的Signal
上不执行任何操作,则可以过滤掉Nothing
并使用Signal.Extra.filter
或Just
打开Signal.filterMap identity
:
port projectRequests : Signal (Maybe (Task String ()))
port projectRequests = Signal.filterMap identity -- and then whatever you had here before
*您能否将此错误消息报告给error message catalog?此消息可能会更好,因为它可以根据您尝试发送的数据类型中的Task
来猜测您的意图。