2017-11-07 8 views
0

Moya経由でネットワークリクエストを開始しようとしています。RxSwift/Moya - 機能によって返された場合、シーケンスは開始されません。

let provider = MoyaProvider<User>() 

    provider.rx.request(.Auth(username: username, password: password)) 
     .filterSuccessfulStatusAndRedirectCodes() 
     .debug() 
     .mapOptional(to: Authentication.self) 
     .observeOn(MainScheduler.instance) 
     .subscribe { 
      event in 
      print(event) 
     }.disposed(by: disposeBag) 

私は上記の方法ですべてうまく動作します。

しかし、私はそれを行う場合は、この方法:その後、

func logIn(username: username, password: password) -> Single<Authentication?> { 

    let provider = MoyaProvider<User>() 

    return provider.rx.request(.Auth(username: username, password: password)) 
     .filterSuccessfulStatusAndRedirectCodes() 
     .debug() 
     .mapOptional(to: Authentication.self) 
} 

そして関数を呼び出す:

self.loginIn(username: username, password: password) 
     .observeOn(MainScheduler.instance) 
     .subscribe { 
      event in 
      print(event) 
     } 
     .disposed(by: disposeBag) 

デバッグ出力は、それが加入し得ると述べているが、あれば、それはシーケンスを開始しません私は関数を介してそれを返します。

答えて

0

私はこのエラーを解決しました。あなたはプロバイダを保持する必要があります。インスタンス変数に格納してください。それは破棄されません。

https://github.com/Moya/Moya/issues/1460

関連する問題