2016-11-19 4 views
1

Я пытался конвертировать код Elm 0.16 в 0.18. Однако я не могу заставить Http.get работать.Вяз 0.16 до 0.18 Http.get?

старый код был:

fetch : Decoder a -> String -> (Result Http.Error a -> b) -> Effects b --Effects became Cmd in 0.17 
fetch decoder url action = 
    Http.get decoder url 
    |> Task.toResult 
    |> Task.map action 
    |> Effects.task 

Но Task.toResult больше не существует. я нашел google groups conversation что заявил, что я должен был преобразовать

task |> Task.toResult |> Task.map action |> Effects.task в

task |> Task.toResult |> Task.perform never action

Но я все еще получаю «Task не разоблачить toResult» ошибка, так как в 0.18 они удаляются, что кажется.

Любая помощь в том, как это исправить? Я пробовал поиск в Интернете, но считаю все очень запутанным и не очень полезным. Благодаря!

ответ

3

Вам только нужно использовать Http.get и Http.send для fetch функции:

fetch : Decoder a -> String -> (Result Http.Error a -> b) -> Cmd b 
fetch decoder url action = 
    Http.get url decoder 
     |> Http.send action 

С 0,16, то Http пакет не требует использования промежуточного Task перед отправкой запроса. Вы можете преобразовать запрос в Task, если необходимо, с помощью Http.toTask, если вы хотите связать несколько запросов.

+0

Спасибо! Кажется, что это работает: P Ну, он компилируется, поэтому он должен работать. Много больше кода, чтобы идти до его обновления до 0,18, и на самом деле не хватает времени для этого. Надеюсь, это было последнее, но это не было :( –

Смежные вопросы