title: rxSwift Button Press Observer Issue
body: <p>I have an init that sets up the handling of observers for rxSwift on my viewModel </p>
  
  <pre><code>init(login: Observable&lt;String&gt;, password: Observable&lt;String&gt;, buttonPress: Observable&lt;Void&gt;) {
          let userInputs = Observable.combineLatest(login, password) { (login, password) -&gt; (String, String) in
              return (login, password)
          }
  
          let callFromPress = buttonPress
              .withLatestFrom(userInputs)
              .map { (login, password) in
                  self.makeLoginRequest(userLogin: login, loginPassword: password, loginSecret: self.loginSecret, deviceToken: self.deviceToken)
          }
      }
  </code></pre>
  
  <p>However when i tap the button, nothing happens. It is hooked up in the VC as so:</p>
  
  <pre><code>buttonPress: self.loginView.loginButton.rx.tap.asObservable()
  </code></pre>
  
  <p>Any solutions as to why the button tap doesn't trigger anything despite no errors?</p>
  
  <p>update:</p>
  
  <pre><code>init(login: Observable&lt;String&gt;, password: Observable&lt;String&gt;, buttonPress: Observable&lt;Void&gt;) {
      let userInputs = Observable.combineLatest(login, password) { (login, password) -&gt; (String, String) in
          return (login, password)
      }
  
      buttonPress.subscribe(onNext: { each in
          print(each)
              .withLatestFrom(userInputs)
              .map { (login, password) in
                  self.makeLoginRequest(userLogin: login, loginPassword: password, loginSecret: self.loginSecret, deviceToken: self.deviceToken)
          }
      }).disposed(by: self.disposeBag)
  }
  </code></pre>
  
  <p>error:</p>
  
  <blockquote>
    <p>Extraneous argument label 'onNext:' in call</p>
  </blockquote>
  
  <p>Update 2:</p>
  
  <pre><code>init(login: Observable&lt;String&gt;, password: Observable&lt;String&gt;) {
      // each time the login and password change, returns login and string value
      didTapLoginButton = { [weak self] _ in
          // allows for strong self reference
          guard let `self` = self else { return }
  
          Observable.combineLatest(login, password) { (login, password) in
              //
              }
              .subscribe(onNext: { response in
                  self.makeLoginRequest(userLogin: login, loginPassword: password, loginSecret: self.loginSecret, deviceToken: self.deviceToken)
                  // do something with your response
              })
              .disposed(by: self.disposeBag)
  
      }
  }
  </code></pre>