RxSwift 和 Alamofire:alamofire 处理响应数据后无法订阅事件
RxSwift and Alamofire: can't subscribe events after alamofire handling response data
这是我的一些代码:
func toObservable() -> Observable<T> {
return Observable.create {
observer -> Disposable in
let urlRequest = try? self.asURLRequest()
Alamofire.request(urlRequest!)
.responseObject{ (response: DataResponse<T>) in
if response.result.isSuccess {
if let responseEntity = response.result.value {
if let _ = responseEntity.error {
observer.onError(ResponseError.generic)
} else {
observer.onNext(responseEntity)
}
} else {
// TODO
}
} else {
// TODO
}
observer.onCompleted()
}
return Disposables.create()
}
}
当我调用这个函数时:
toObservable().subscribe(onNext: {
print("onNext")
// ... use [=11=] parameter
}, onError: {
print("onError")
// ... use [=11=] parameter
}, onCompleted: {
print("onCompelete")
}, onDisposed: nil)
.addDisposableTo(DisposeBag())
就是打印不出任何东西。那么对此有什么想法吗?非常感谢!
(我使用了 AlamofireObjectMapper、RxSwift 框架)
同样的问题 但没有人回答。
尝试像这样保持对 disposbag
的强引用:
let disposeBag = DisposeBag()
func setupRx() {
toObservable()
.debug("Alamofire.request")
.subscribe(onNext: {
print("onNext")
// ... use [=10=] parameter
}, onError: {
print("onError")
// ... use [=10=] parameter
}, onCompleted: {
print("onCompelete")
}, onDisposed: nil)
.addDisposableTo(disposeBag)
}
您可以使用 debug
运算符来查看发生了什么。
希望这可能有所帮助。
let disposeBag = DisposeBag()
addDisposable 已弃用..
func setupRx() {
toObservable()
.debug("Alamofire.request")
.subscribe(onNext: {
print("onNext")
// ... use [=11=] parameter
}, onError: {
print("onError")
// ... use [=11=] parameter
}, onCompleted: {
print("onCompelete")
}, onCompleted: {
print("onCompelete")
}).disposed(by: disposeBag)
}
这是我的一些代码:
func toObservable() -> Observable<T> {
return Observable.create {
observer -> Disposable in
let urlRequest = try? self.asURLRequest()
Alamofire.request(urlRequest!)
.responseObject{ (response: DataResponse<T>) in
if response.result.isSuccess {
if let responseEntity = response.result.value {
if let _ = responseEntity.error {
observer.onError(ResponseError.generic)
} else {
observer.onNext(responseEntity)
}
} else {
// TODO
}
} else {
// TODO
}
observer.onCompleted()
}
return Disposables.create()
}
}
当我调用这个函数时:
toObservable().subscribe(onNext: {
print("onNext")
// ... use [=11=] parameter
}, onError: {
print("onError")
// ... use [=11=] parameter
}, onCompleted: {
print("onCompelete")
}, onDisposed: nil)
.addDisposableTo(DisposeBag())
就是打印不出任何东西。那么对此有什么想法吗?非常感谢!
(我使用了 AlamofireObjectMapper、RxSwift 框架)
同样的问题
尝试像这样保持对 disposbag
的强引用:
let disposeBag = DisposeBag()
func setupRx() {
toObservable()
.debug("Alamofire.request")
.subscribe(onNext: {
print("onNext")
// ... use [=10=] parameter
}, onError: {
print("onError")
// ... use [=10=] parameter
}, onCompleted: {
print("onCompelete")
}, onDisposed: nil)
.addDisposableTo(disposeBag)
}
您可以使用 debug
运算符来查看发生了什么。
希望这可能有所帮助。
let disposeBag = DisposeBag()
addDisposable 已弃用..
func setupRx() {
toObservable()
.debug("Alamofire.request")
.subscribe(onNext: {
print("onNext")
// ... use [=11=] parameter
}, onError: {
print("onError")
// ... use [=11=] parameter
}, onCompleted: {
print("onCompelete")
}, onCompleted: {
print("onCompelete")
}).disposed(by: disposeBag)
}