Observable.zip 使用 RxBinding 没有 return 结果

Observable.zip with RxBinding don't return result

我有两个 EditText,我用两个 observables 听它:

Observable<CharSequence> emailObservable = RxTextView.textChanges(emailNew);
Observable<CharSequence> passwordObservable = RxTextView.textChanges(passwordNew);

我想压缩此字段中的值以在两个值均有效时执行某些操作。

所以我写道:

Observable.zip(emailObservable, passwordObservable, 
(charSequence, charSequence2) -> "test")
          .subscribe(result -> Timber.e("Result:" + result));

但它 return 只有在第二个字段数据更改时才会产生结果。当我在第一个字段输入内容时,它不起作用。

同样的结果,如果我写:

emailObservable
    .zipWith(passwordObservable, (email, password) -> email + " " + password)
    .subscribe(result -> Timber.e(result);});

它 return 第一个字段的值是正确的,但是 return 如果我在上面输入什么都没有。

答案一定很轻松,但现在我不明白我做错了什么。

好的,我将 zip 替换为 combineLatest,它以某种方式工作:

Observable.combineLatest(emailObservable, passwordObservable,
                (charSequence, charSequence2) -> new String[]{charSequence.toString(), charSequence2.toString()})
                .subscribe(result -> {
                    boolean isEmailValid = isValidEmail(result[0]);
                    boolean isPasswordValid = isValidPassword(result[1]);
                });