src/main/java/io/reactivex/Observable.java
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.COMPUTATION)
    public final Observable<T> throttleWithTimeout(long timeout, TimeUnit unit) {
        return debounce(timeout, unit);
    }
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.COMPUTATION)
    public final Observable<T> throttleWithTimeout(long timeout, TimeUnit unit) {
        return debounce(timeout, unit);
    }
Returns an Observable that mirrors the source ObservableSource, except that it drops items emitted by the
source ObservableSource that are followed by newer items before a timeout value expires. The timer resets on
each emission (alias to {@link #debounce(long, TimeUnit, Scheduler)}).
<p>
<em>Note:</em> If items keep being emitted by the source ObservableSource faster than the timeout then no items
will be emitted by the resulting ObservableSource.
<p>
<img width="640" height="305" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/throttleWithTimeout.png" alt="">
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code throttleWithTimeout} operates by default on the {@code computation} {@link Scheduler}.</dd>
</dl>

@param timeout
the length of the window of time that must pass after the emission of an item from the source
ObservableSource in which that ObservableSource emits no items in order for the item to be emitted by the
resulting ObservableSource
@param unit
the unit of time for the specified {@code timeout}
@return an Observable that filters out items from the source ObservableSource that are too quickly followed by
newer items
@see <a href="http://reactivex.io/documentation/operators/debounce.html">ReactiveX operators documentation: Debounce</a>
@see #debounce(long, TimeUnit)