尝试将一些旧代码升级到0.18

时间:2017-01-11 02:05:32

标签: elm

这是我要修复的最后一个错误。它最初是

Task.perform HTTPError SetPeople (Http.get (Json.list decodePerson) peopleUrl)

但我已经完成了你在下面看到的内容。我认为我需要使用尝试而不是执行,但后来处理Result,我认为这将需要更大的重构。我不知道我是全新的。

The 2nd argument to function `perform` is causing a mismatch.

87|             Task.perform SetPeople (Http.get peopleUrl (Json.list decodePerson)
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Function `perform` is expecting the 2nd argument to be:

    Task.Task Never (List Person)

But it is:

    Http.Request (List Person)

1 个答案:

答案 0 :(得分:3)

0.18版本的HTTP请求绕过了对任务的直接需求,并允许您直接创建Cmd msg。您的代码可能会被重写为:

Http.get peopleUrl (Json.list decodePerson)
    |> Http.send SetPeople

这假定您的Msg现在定义为

type Msg
    = ...
    | SetPeople (Result Http.Error (List Person))

详细了解the Http package here