Reputation: 15
I am trying to create function which return Observable<(HTTPURLResponse, Any)> using RxAlamofire:
func getResponse(credentialData: Credentials, ulr: String)->Observable<(HTTPURLResponse, Any)>{
let credentialData = "\(credentialData.username):\(credentialData.password)".data(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue))!
let base64Credentials = credentialData.base64EncodedString()
let headers = ("Authorization", "Basic \(base64Credentials)")
let header = HTTPHeaders.init(dictionaryLiteral: headers)
return Observable.create{ observer in
requestJSON(.get, ulr, parameters: nil, encoding: JSONEncoding.default, headers: header)
.subscribe(onNext: { response in
observer.onNext(response)
} ,
onError: { error in
observer.onError(error)
})
return Disposables.create()
}
}
}
but I get this below warning:-
Result of call to 'subscribe(onNext:onError:onCompleted:onDisposed:)' is unused
How to fix it? After adding .disposed(by: disposeBag)
my function isn't working.
Upvotes: 1
Views: 5208
Reputation: 619
Hello you have to add your request into a DisposeBag
:
return Observable.create { observer in
requestJSON(.get, ulr, parameters: nil, encoding: JSONEncoding.default, headers: header)
.subscribe(onNext: { response in
observer.onNext(response)
}, onError: { error in
observer.onError(error)
}).disposed(by: disposeBag)
return Disposables.create()
}
That should works.
Upvotes: 1