Rx\Operator\SkipWhileOperator::__invoke PHP Method

__invoke() public method

public __invoke ( Rx\ObservableInterface $observable, Rx\ObserverInterface $observer, Rx\SchedulerInterface $scheduler = null ) : Rx\DisposableInterface
$observable Rx\ObservableInterface
$observer Rx\ObserverInterface
$scheduler Rx\SchedulerInterface
return Rx\DisposableInterface
    public function __invoke(ObservableInterface $observable, ObserverInterface $observer, SchedulerInterface $scheduler = null)
    {
        $callbackObserver = new CallbackObserver(function ($value) use($observer, $observable) {
            try {
                if ($this->isSkipping) {
                    $this->isSkipping = call_user_func_array($this->predicate, [$value, $observable]);
                }
                if (!$this->isSkipping) {
                    $observer->onNext($value);
                }
            } catch (\Exception $e) {
                $observer->onError($e);
            }
        }, [$observer, 'onError'], [$observer, 'onCompleted']);
        return $observable->subscribe($callbackObserver, $scheduler);
    }
SkipWhileOperator