Size: a a a

Elm Lang сообщество разработчиков

2020 September 18

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Если я не ошибаюсь там можно поиграться с таском... щас гляну
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Таски можно намапить, ага
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Т.е. для HTTP подойдёт
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Хттп может кидать таски да
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
такая штука есть, но как-то уж очень понакручено...
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Task.map2
       (\result1 result2 -> { result1 = result1, result2 = result2 })
       (Http.task { method = "GET", headers = [], url = "/api" ... })
       (Http.task { method = "GET", headers = [], url = "/api" ... })
   |> Task.perform
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
что-то такое, писал без тайп чекера
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
в общем выбрасываем два запроса тасками, комбинируем их вместе в один таск, получаем общий результат
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
доступно до 5 мап функций
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
эта комбинация нам даст одну команду когда все запросы прилетят
источник

MP

Max P in Elm Lang сообщество разработчиков
так, с тасками выглядит интересно. Надо попробовать
С map пока не понял
С кучей бойлерплейт кода - понял, но не очень хочется)
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Это не будет таск с тасками
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Схлопнется всё
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Denis Krivosheev
доступно до 5 мап функций
Остальные можно накомпозить :)

type Quad a b c d = Quad a b c d

map8 f ta tb tc td te tf tg th =
   Task.map2 (\x y ->
       case (x, y) of
           (Quad a b c d, Quad e f g h) -> f a b c d e f g h i)
       (Task.map4 Quad ta tb tc td)
       (Task.map4 Quad te tf tg th)
и так далее
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Или пайплайн сделать уже
источник

MP

Max P in Elm Lang сообщество разработчиков
Denis Krivosheev
Task.map2
       (\result1 result2 -> { result1 = result1, result2 = result2 })
       (Http.task { method = "GET", headers = [], url = "/api" ... })
       (Http.task { method = "GET", headers = [], url = "/api" ... })
   |> Task.perform
похоже тут используется подобный подход? https://package.elm-lang.org/packages/0ui/elm-task-parallel/latest/
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Эт можно, не знаю только зачем может понадобиться больше 5 реквестов за раз... это же риск, если хоть один упадёт - все упадёт
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Max P
похоже тут используется подобный подход? https://package.elm-lang.org/packages/0ui/elm-task-parallel/latest/
Да, это примерно оно. Только обработка ошибок сделана явно
источник

AY

Alexey Yurchenko in Elm Lang сообщество разработчиков
Denis Krivosheev
Эт можно, не знаю только зачем может понадобиться больше 5 реквестов за раз... это же риск, если хоть один упадёт - все упадёт
Когда нет graphql...
источник