我使用RxSwift获取一些网络数据,而且我在执行每次迭代数组的请求时遇到问题。这是我的想法:
(代码简化)
var arrayObj = networkClient.request(getObjsEndpoint)
.fetchObjLocationDetails(withNetworkClient: networkClient)
(代码简化)
extension ObservableType where E == [Obj]? {
func fetchObjsLocationDetails(withNetworkClient networkClient: NetworkClient) -> Observable<[Obj]?> {
return flatMap { Objs -> Observable<[Obj]?> in
guard let unwrappedObjs = Objs as [Obj]? else { return Observable.just(nil) }
let disposeBag = DisposeBag()
var populatedObjs = [Obj]()
unwrappedObjs.forEach { obj in
let getLocationDetailsEndpoint = WeDriveParkAPI.getLocation(id: String(obj.id))
networkClient.request(getLocationDetailsEndpoint)
.observeOn(MainScheduler.instance)
.subscribe(onNext: { json in
guard let populatedObj = Obj.fromJSON(json) as Obj? else { return }
populatedObjs += [populatedObj]
}, onError:{ e in
}).addDisposableTo(disposeBag)
}
return Observable.just(populatedObjs)
}
}
}
这个解决方案并没有真正起作用,因为代码甚至不会进入订阅下一个闭包。
请记住我对Swift和RxSwift编程都很陌生,所以请保持温和:)非常感谢任何帮助。
答案 0 :(得分:9)
您可以使用内置的<。p>代替自定义运算符
<div class="container" ng-repeat="order in orders">
<h3>{{order.name}}</h3>
</div>