title: RxJava, Request's execution time has to be > 1sec but < 5sec
body: <p>How to build a beautiful sequence in Rx for that requirements:</p>
  
  <ul>
  <li>Request's execution time has to be > 1sec (request could finished earlier but result should be received by subscriber after 1sec, like it has executed more than 1 sec) and &lt; 5sec (otherwise emit timeout error)?</li>
  </ul>
  
  <p>I think about that sequence, but i'm not sure if it is optimal
  (<strong>raw scheme</strong>):</p>
  
  <pre><code>   Observable&lt;Long&gt; timeoutError = Observable.timer(5, TimeUnit.SECONDS)
          .concatWith(Observable.error(new Exception("TIMEOUT!")));
     Observable&lt;RequestResult&gt; request = Observable.combineLatest(Observable.timer(1, TimeUnit.SECONDS),
          Observable.from(request), new Func2&lt;Long, RequestResult, RequestResult&gt;() {
                      @Override
                      public RequestResult call(Long aLong, RequestResult result) {
                          return result;
                      }
                  });
     Observable.merge(timeoutError, request) (maybe .take(1));
  </code></pre>