docs: public static <T> Observable<Response<T>> from(@NotNull final ApolloQueryWatcher<T> watcher) {
      checkNotNull(watcher, "watcher == null");
      return Observable.create(new ObservableOnSubscribe<Response<T>>() {
        @Override public void subscribe(final ObservableEmitter<Response<T>> emitter) throws Exception {
          cancelOnObservableDisposed(emitter, watcher);
  
          watcher.enqueueAndWatch(new ApolloCall.Callback<T>() {
            @Override public void onResponse(@NotNull Response<T> response) {
              if (!emitter.isDisposed()) {
                emitter.onNext(response);
              }
            }
  
            @Override public void onFailure(@NotNull ApolloException e) {
              Exceptions.throwIfFatal(e);
              if (!emitter.isDisposed()) {
                emitter.onError(e);
              }
            }
          });
        }
      });
    }