[英]RxSwift - call sequence of a function after Mapping
我試圖映射成功完成后調用的函數。 可觀察到的從由映射現有流創建。 在映射塊內,我訂閱以獲取映射到最終類型的輸出。 隨着更新的流,我正在考慮調用該函數。 但是在我訂閱並將其映射到更新的流之前會調用該函數。
這是一個示例代碼:
let updatedDataStream = dataStream
.observeOn(MainScheduler.instance)
.map { (data) -> ViewData? in
guard var unknownData = data as? UnknownDataType,
let location = unknownData.dataPoints.first?.location else {
return data
}
let dataModel = DataModel(x: location.x, y: location.y)
self.dataStore.localStore?
.entity(forID: DataModel.entityID)
.filter({$0?.status == .Success})
.take(1)
.unwrap()
.subscribe(onNext: { (localDataModel) in
guard let value = localDataModel.dataValue, value.count > 0 else {
return
}
unknownData.value = value
}).disposed(by: self.disposeBag)
return unknownData
}
self.attachUpdatedData(updatedDataStream)
attachUpdatedData(_:)
預期之后,才會檢索updatedDataStream被調用。 通過以上的實施attachUpdatedData(_:)
首先之前的數據被映射到一個新值調用。 有人可以指出我正確的方向嗎?
在地圖上訂閱(或任何形式的轉換)是不行的。 您將在'dataStream'的每個項目上創建一個新的訂閱,並且實際上將失去對數據流的所有控制。 同樣,在執行“ onNext:”之前,很可能從“ .map()”返回“ unknownData”。
您想達到什么目的?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.