import RxSwift
import RxCocoa
import RxAlamofire
typealias ResponseMFail = (_ error: MyError) -> Void
typealias ResponseAll = (_ response: (Array<ServiceDetail>, Array<Detail>)) -> Void
let disposeBag = DisposeBag()
struct MyError: Error {
let errorMsg: String
}
class NetworkTool {
//获取页面所有数据
class func getServiceDatas(success: @escaping ResponseAll,
failure: @escaping ResponseMFail) {
let observable1 = RxAlamofire.request(.get, "https://www.shop.cn/configs/v2/serviceIcons").responseData()
let observable2 = RxAlamofire.request(.get, "https://www.shop.cn/configs/v2/banners/0208").responseData()
Observable.zip(observable1, observable2)
.subscribe(onNext: { (data1, data2) in
let jsonData1 = data1.1
let modelObject1 = try? JSONDecoder().decode(ServiceTabRootModel.self, from: jsonData1)
let jsonData2 = data2.1
let modelObject2 = try? JSONDecoder().decode(ServiceImgListRootModel.self, from: jsonData2)
if let tabDetails = modelObject1?.details, let imageDetails = modelObject2?.details {
success((tabDetails, imageDetails))
} else {
failure(MyError(errorMsg: "获取数据失败"))
}
}, onError: { error in
failure(MyError(errorMsg: "获取数据失败"))
})
.disposed(by: disposeBag)
}
}
RxSwift 网络请求合并
最新推荐文章于 2022-12-03 20:57:35 发布