基于网络请求之前添加的检查,无法挂钩到另一个RxSwift流。
我正在构造UserProfile对象,但我想确保已完全创建userProfile对象。我有一个正在创建userProfile对象的流,但是现在有一个检查。我想加入上一个流,以便在完成UserProfile后可以执行网络请求。我不确定如何插入上一个流。我要通过updateUserProfile($ 0)传递UserProfile对象来发出网络请求,但我想确保我就停在那里。
let userInfoResponse = latestLocallySavedUserProfileDictionary
.map { (dictionary: [String: String?]) in
return UserProfile(
firstName: dictionary["firstName"] ?? "",
lastName: dictionary["lastName"] ?? "",
phone: dictionary["phone"] ?? "",
company: dictionary["company"] ?? "",
organizationType: dictionary["organizationType"] ?? "",
jobFunction: dictionary["jobFunction"] ?? "",
addressLine1: dictionary["addressLine1"] ?? "",
addressLine2: dictionary["addressLine2"] ?? "",
city: dictionary["city"] ?? "",
state: dictionary["state"] ?? nil,
zipCode: dictionary["zipCode"] ?? "",
country: dictionary["country"] ?? "",
languageCode: dictionary["languageCode"] ?? "",
merrillDisclaimerAccepted: false, // ignore for now
merrillDisclaimerAcceptedDate: "" // ignore for now
)
}
.flatMapLatest { updateUserProfile($0) }
.share()
isUserProfileDictionaryComplete = Observable.merge([
initialUserProfileCall,
userInfoResponse
.map{$0.createDictionary()},
userProfileLocal
])
.asObservable()
.map{(profileDictionary) -> Bool in
return profileDictionary.values.contains(nil) || profileDictionary.values.contains("")
}
.ignore(true)
答案 0 :(得分:2)
我不太了解您要做什么,但是一般来说,您需要找出所有提示网络请求的事件,并将它们放在flatMapLatest之前的流中。
如果您尝试从UserProfile
,latestLocallySavedUserProfileDictionary
和initialUserProfileCall
中构建userProfileLocal
,那么您可能想在合并后进行扫描以收集所有每个字典中的位。