假设我想从 UseDefaults 读取一个值,如果失败,尝试向服务器询问它,我写了这段代码,但它不会执行:
func getAuthorizationCode() -> SignalProducer<String, MoyaError> {
if let authCode = UserDefaults.string(forKey: .authorizationCode) {
return SignalProducer(value: authCode)
}
let provider = ReactiveSwiftMoyaProvider<UserService>()
return provider.request(.authorization).flatMap(.concat) {
response -> SignalProducer<String, Moya.MoyaError> in
let json = JSON(data: response.data)
log.debug("Authorization response:\(json) ")
let authCode = json["authorizationcode"].stringValue
return SignalProducer(value: authCode)
}
}
getAuthorizationCode().start { event in case let .value(value): print(value) case let .failed(error): print(error) } 另外,如果我想执行另一个网络请求,我应该怎么做做?
任何帮助表示赞赏。