2017-04-05 1 views
0

RxAlamorefireを使用してアプリケーションでネットワークタスクを処理しています。キーでjsonを取得するとエラーが発生する

私の問題は:私がリクエストをしてjsonを返すときです。 jsonにキー "error"がある場合、onNext通知の代わりにエラー通知を出す必要があります。

私のコードはこの1つのようなものです:map

let observable = RxAlamofire.json(.get, url, parameters: nil, encoding: URLEncoding.default, headers: header) 
.map { (json) -> SomeObject? in 
//Should check json maybe not in ".map" to see if the json contain "error" then emit onError notification. 
return Mapper<SomeObject>().map(JSONObject: json) 
} 

答えて

1

、あなたが送信するためにthrowキーワードを使用することができますし、エラー

let observable = request.map { (json) -> SomeObject in 
    if let error = json["error"] as? [AnyHashable: Any] { 
    throw Mapper<ErrorObject>().map(JSONObject: error) 
    } else { 
    // regular deserialization 
    } 
} 

これは、タイプの観察可能な発光エラーになりますErrorObject jsonにerrorキーが含まれている場合。

関連する問題