mpyw\Co\Internal\Delayer::add PHP Method

add() public method

Add delay.
public add ( integer $time ) : React\Promise\PromiseInterface
$time integer
return React\Promise\PromiseInterface
    public function add($time)
    {
        $deferred = new Deferred();
        $time = filter_var($time, FILTER_VALIDATE_FLOAT);
        if ($time === false) {
            throw new \InvalidArgumentException('Delay must be number.');
        }
        if ($time < 0) {
            throw new \DomainException('Delay must be positive.');
        }
        do {
            $id = uniqid();
        } while (isset($this->untils[$id]));
        $this->untils[$id] = microtime(true) + $time;
        $this->deferreds[$id] = $deferred;
        return $deferred->promise();
    }

Usage Example

Example #1
0
File: Pool.php Project: mpyw/co
 /**
  * Add delay.
  * @param int $time
  * @return PromiseInterface
  */
 public function addDelay($time)
 {
     return $this->delayer->add($time);
 }