如何从rxswift中的可观察响应中获取对象?

时间:2018-02-14 05:53:14

标签: swift rx-swift

我正在尝试从rxswift中的可观察响应中获取对象数组值。使用我希望将另一个api称为嵌套可观察值的值。任何人都建议我解决这个问题的解决方案。 PLS ..

这是我的代码片段.....

{{1}}

1 个答案:

答案 0 :(得分:1)

要链接observable,您应该使用R(2) + C(2)

试试这个:

flatMap

下次,请为我们提供更多信息以便更好地帮助您:-)。例如,你的代码,你的获取函数等......

编辑

Alamofire.request("httpbin.org/get").rx.responseJSON() 
    .map { value in 
        let json = value as? [String: Any] ?? [:] 
        let origin = json["origin"] as? String ?? "unknown" 
        print(origin)
        return origin
    } 
    .flatMap{ origin in 
       // Here you use your other api call with origin as a parameter
    }
    .subscribe(onNext: { secondResponse in 
        print("The 2nd api call response:", secondResponse) 
    })
    .disposed(by: disposeBag)

然后:

func origin() -> Observable<String> {
    return Alamofire.request("httpbin.org/get").rx.responseJSON() 
        .map { value in 
            let json = value as? [String: Any] ?? [:] 
            let origin = json["origin"] as? String ?? "unknown" 
            print(origin)
            return origin
        }
}

func otherApiCall(with origin: String) -> Observable<YourType> {
    // Other api call using origin
    return Alamofire...........
}