Amp\Observer::__construct PHP Method

__construct() public method

public __construct ( amp\Observable $observable )
$observable amp\Observable
    public function __construct(Observable $observable)
    {
        $this->observable = $observable;
        $deferred =& $this->deferred;
        $values =& $this->values;
        $deferreds =& $this->deferreds;
        $resolved =& $this->resolved;
        $this->observable->subscribe(static function ($value) use(&$deferred, &$values, &$deferreds, &$resolved) {
            $values[] = $value;
            $deferreds[] = $pressure = new Deferred();
            if ($deferred !== null) {
                $temp = $deferred;
                $deferred = null;
                $temp->resolve(true);
            }
            if ($resolved) {
                return null;
            }
            return $pressure->promise();
        });
        $result =& $this->result;
        $error =& $this->exception;
        $this->observable->when(static function ($exception, $value) use(&$deferred, &$result, &$error, &$resolved) {
            $resolved = true;
            if ($exception) {
                $result = null;
                $error = $exception;
                if ($deferred !== null) {
                    $deferred->fail($exception);
                }
                return;
            }
            $result = $value;
            if ($deferred !== null) {
                $deferred->resolve(false);
            }
        });
    }