src/main/java/io/reactivex/Observable.java
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.CUSTOM)
    public final Observable<T> throttleWithTimeout(long timeout, TimeUnit unit, Scheduler scheduler) {
        return debounce(timeout, unit, scheduler);
    }
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.CUSTOM)
    public final Observable<T> throttleWithTimeout(long timeout, TimeUnit unit, Scheduler scheduler) {
        return debounce(timeout, unit, scheduler);
    }
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 on a specified
Scheduler. 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.s.png" alt="">
<dl>
<dt><b>Scheduler:</b></dt>
<dd>You specify which {@link Scheduler} this operator will use.</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}
@param scheduler
the {@link Scheduler} to use internally to manage the timers that handle the timeout for each
item
@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, Scheduler)