public function throttle(int $throttleDuration, SchedulerInterface $scheduler = null): Observable
    {
        return $this->lift(function () use ($throttleDuration, $scheduler) {
            return new ThrottleOperator($throttleDuration, $scheduler ?: Scheduler::getDefault());
        });
    }