我似乎得到了这个错误
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.
Run Code Online (Sandbox Code Playgroud)
然而,这似乎没问题
port orgRequests : Signal (Task String ())
Run Code Online (Sandbox Code Playgroud)
我很困惑这里发生了什么.
您可以通过两种方式使用端口:
Tasks 发送到要安排执行的运行时.在这种情况下,你有数据(Maybe)缠绕在你的周围Task,所以编译器假定(错误的*)你想要使用端口#1.
如果要执行Task包裹s中Just的S Signal和做一个什么Nothing的Signal,你可以过滤掉Nothing,并在解开Just带Signal.Extra.filter或Signal.filterMap identity:
port projectRequests : Signal (Maybe (Task String ()))
port projectRequests = Signal.filterMap identity -- and then whatever you had here before
Run Code Online (Sandbox Code Playgroud)
*您能否将此错误消息报告给错误消息目录?这条消息可能会更好,因为它可以根据您Task尝试发送的数据类型来猜测您的意图.