也许出站端口不支持任务?

Maybe Task not supported on outbound ports?

我似乎遇到了这个错误

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

我对这里发生的事情感到困惑。

您可以通过两种方式使用 port:

  1. 将数据发送到 JavaScript,您可以在其中编写自己的处理程序来处理它。这仅限于可以轻松转换为 JS 值的subset of data
  2. Tasks 发送到要安排执行的运行时。

在这种情况下,您的 Task 周围有数据 (Maybe),因此编译器假定(错误*)您希望将端口用于目的 #1。

如果您想在 Signal 上执行包裹在 Just 中的 Task 并且不对 Signal 上的 Nothing 执行任何操作,您可以过滤掉 Nothing 并使用 Signal.Extra.filterSignal.filterMap identity:

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

*能否将此错误消息报告给 error message catalog?此消息可能会更好,因为它可以根据 Task 中您尝试发送的数据类型来猜测您的意图。