-->

或许任务不支持在出站端口?(Maybe Task not supported on outbound

2019-10-24 10:32发布

我似乎得到这个错误

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 ())

我很困惑,这到底是怎么回事。

Answer 1:

有两种方法可以使用端口 :

  1. 发送数据中的JavaScript,你写你自己的处理程序来处理它。 此被限制在一个数据子集可以很容易地转化为JS的值。
  2. 发送Task s到运行时被调度执行。

在这种情况下你有数据( Maybe )缠你的Task ,所以编译器假定(错误*)要使用的端口为目的的1#。

如果您要执行的Task小号包裹在Just S于的Signal和做一个什么NothingSignal ,就可以过滤掉Nothing和拆礼物JustSignal.Extra.filterSignal.filterMap identity

port projectRequests : Signal (Maybe (Task String ()))
port projectRequests = Signal.filterMap identity -- and then whatever you had here before

*你能请报告此错误消息的错误消息目录 ? 此消息可能会更好,因为它可以猜到从你的意图Task在你试图发送出的数据的类型。



文章来源: Maybe Task not supported on outbound ports?
标签: elm maybe