Rx\React\Promise::toObservable PHP Method

toObservable() public static method

Converts a Promise to an Observable sequence
public static toObservable ( React\Promise\CancellablePromiseInterface $promise ) : Rx\Observable\AnonymousObservable
$promise React\Promise\CancellablePromiseInterface
return Rx\Observable\AnonymousObservable
    public static function toObservable(CancellablePromiseInterface $promise)
    {
        $subject = new AsyncSubject();
        $p = $promise->then(function ($value) use($subject) {
            $subject->onNext($value);
            $subject->onCompleted();
        }, function ($error) use($subject) {
            $error = $error instanceof \Exception ? $error : new RejectedPromiseException($error);
            $subject->onError($error);
        });
        return new AnonymousObservable(function ($observer, $scheduler = null) use($subject, $p) {
            $disp = $subject->subscribe($observer, $scheduler);
            return new CallbackDisposable(function () use($p, $disp) {
                $disp->dispose();
                $p->cancel();
            });
        });
    }

Usage Example

Example #1
0
 /**
  * Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes.
  *
  * @param callable $factory
  * @return \Rx\Observable\AnonymousObservable
  */
 public static function toObservable(callable $factory)
 {
     $observableFactory = function () use($factory) {
         return Promise::toObservable($factory());
     };
     return Observable::defer($observableFactory);
 }
All Usage Examples Of Rx\React\Promise::toObservable