榆树 0.16 到 0.18 Http.get?
Elm 0.16 to 0.18 Http.get?
我一直在尝试将我的 Elm 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 中他们删除了它似乎。
我该如何解决这个问题?我试过在网上搜索,但发现一切都很混乱而且不是很有用。
您只需要为您的 fetch
函数使用 Http.get
and Http.send
:
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
。如果需要,您仍然可以使用 Http.toTask
将请求转换为 Task
,以防您想将多个请求链接在一起。
我一直在尝试将我的 Elm 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 中他们删除了它似乎。
我该如何解决这个问题?我试过在网上搜索,但发现一切都很混乱而且不是很有用。
您只需要为您的 fetch
函数使用 Http.get
and Http.send
:
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
。如果需要,您仍然可以使用 Http.toTask
将请求转换为 Task
,以防您想将多个请求链接在一起。