Rx\Functional\Operator\RetryWhenTest::retryWhen_Observable_next_complete PHP Метод

retryWhen_Observable_next_complete() публичный Метод

    public function retryWhen_Observable_next_complete()
    {
        $error = new \Exception();
        $xs = $this->createColdObservable([onNext(10, 1), onNext(20, 2), onError(30, $error), onCompleted(40)]);
        $results = $this->scheduler->startWithCreate(function () use($xs, $error) {
            return $xs->retryWhen(function (Observable $attempts) {
                return $attempts->scan(function ($count, $error) {
                    return $count + 1;
                }, 0)->takeWhile(function ($count) {
                    return $count < 2;
                });
            });
        });
        $this->assertMessages([onNext(210, 1), onNext(220, 2), onNext(240, 1), onNext(250, 2), onCompleted(260)], $results->getMessages());
        $this->assertSubscriptions([subscribe(200, 230), subscribe(230, 260)], $xs->getSubscriptions());
    }