Rx\Scheduler\VirtualTimeScheduler::schedulePeriodic PHP Method

schedulePeriodic() public method

public schedulePeriodic ( callable $action, $delay, $period )
$action callable
    public function schedulePeriodic(callable $action, $delay, $period)
    {
        $now = $this->now();
        $nextTime = $now + $delay;
        $disposable = new SerialDisposable();
        $doActionAndReschedule = function () use(&$nextTime, $period, $disposable, $action, &$doActionAndReschedule) {
            $action();
            $nextTime = $nextTime + $period;
            $delay = $nextTime - $this->now();
            if ($delay < 0) {
                $delay = 0;
            }
            $disposable->setDisposable($this->schedule($doActionAndReschedule, $delay));
        };
        $disposable->setDisposable($this->schedule($doActionAndReschedule, $delay));
        return $disposable;
    }