我想知道如何解碼榆樹中的Http.Error並將其數據存儲在我的模型中。榆樹:解碼Http.Error
我知道錯誤響應將返回此結構。
{
error: "Some error message",
ok: false
}
這裏是我的模型,我的Http請求
type alias Model =
{ url = String
, result : String
, errorMessage : String
, error : Bool
}
model : Model
model =
{ url = ""
, result = ""
, errorMessage = ""
, error = False
}
-- make the request
makeRequest : String -> Cmd Msg
makeRequest url =
Task.perform FetchFail FetchSucceed (Http.get decodeTitle url)
-- decode the success response
decodeTitle : Json.Decoder String
decodeTitle =
Json.at ["title"] Json.string
-- decode the error
decodeError =
Json.object2 User
("error" := Json.string)
("ok" := Json.bool)
我希望我能在我的更新FetchFail
處理這像這樣。
type Msg
= FetchTitle
| FetchSucceed String
| FetchFail Http.Error
update : Msg -> Model -> (Model, Cmd Msg)
update action model =
case action of
...
FetchFail err ->
let
error =
decodeError error
in
({ model | ok = error.ok, errorMessage = error.error}, Cmd.none)
任何幫助表示讚賞。
你'Error'類型別名似乎未使用。更好地移除它(從其他地方使用的問題)。 – farmio