10
我正在尝试在Elm 0.17 tutorial for HTTP中完成练习。如果获取gif失败,我想让用户知道为什么失败并显示错误消息。如何从Http.Error中获取错误消息?
我修改我的模型是:
type alias Model =
{ topic : String
, gifUrl : String
, errorMessage : String
}
,并获取失败的更新是:
FetchFail error ->
(Model model.topic model.gifUrl (errorMessage error), Cmd.none)
当功能errorMessage
如下:
errorMessage : Http.Error -> String
errorMessage error =
case error of
Http.Timeout ->
"Timeout"
Http.NetworkError ->
"Network Error"
Http.UnexpectedPayload _ ->
"UnexpectedPayload"
Http.BadResponse _ _ ->
"BadResponse"
上述功能对我来说似乎是不必要的锅炉板。有没有一种方法可以将Http.Error
直接转换为字符串?
如果响应是'BadResponse 400“”“”{“errors”:[“缺少必需的参数q”]“”“',@Martimatix使用的样板将是必需的,否?本质上,响应将是'任何错误a'。 –
如果你想省略参数并打印“BadResponse”,那么是的,你必须在case语句中明确地调用它,并且你可以有一个下划线全部的情况,然后默认为'toString'。 –