Rx\Functional\React\PromiseToObservableTest::two_observables_one_delayed PHP Method

two_observables_one_delayed() public method

    public function two_observables_one_delayed()
    {
        $canceled = false;
        $deferred = new Deferred(function () use(&$canceled) {
            $canceled = true;
        });
        $o1 = Promise::toObservable($deferred->promise());
        $o2 = Promise::toObservable($deferred->promise())->delay(200);
        $deferred->resolve(1);
        $results1 = new MockObserver($this->scheduler);
        $o1->subscribe($results1, $this->scheduler);
        $results2 = new MockObserver($this->scheduler);
        $o2->subscribe($results2, $this->scheduler);
        $this->scheduler->start();
        $this->assertMessages([onNext(0, 1), onCompleted(0)], $results1->getMessages());
        $this->assertMessages([onNext(200, 1), onCompleted(200)], $results2->getMessages());
        $this->assertFalse($canceled);
    }