public function subscribe(ObserverInterface $observer, SchedulerInterface $scheduler = null)
{
if ($this->scheduler !== null) {
$scheduler = $this->scheduler;
}
if ($scheduler === null) {
throw new \Exception("You must use a scheduler that support non-zero delay.");
}
return $scheduler->schedule(function () use($observer) {
$observer->onNext(0);
$observer->onCompleted();
}, $this->dueTime);
}