public function testDoesNotForwardRejectedPromise() { $res = []; $p = new Promise(); $p2 = new Promise(); $p2->cancel(); $p2->then(function ($v) use(&$res) { $res[] = "B:{$v}"; return $v; }); $p->then(function ($v) use($p2, &$res) { $res[] = "B:{$v}"; return $p2; })->then(function ($v) use(&$res) { $res[] = 'C:' . $v; }); $p->resolve('a'); $p->then(function ($v) use(&$res) { $res[] = 'D:' . $v; }); P\queue()->run(); $this->assertEquals(['B:a', 'D:a'], $res); }
public function cancel() { $this->currentPromise->cancel(); $this->result->cancel(); }