function testAllReject() { $promise1 = new Promise(); $promise2 = new Promise(); $finalValue = 0; Promise::all([$promise1, $promise2])->then(function ($value) use(&$finalValue) { $finalValue = 'foo'; return 'test'; }, function ($value) use(&$finalValue) { $finalValue = $value; }); $promise1->reject(1); $this->assertEquals(1, $finalValue); $promise2->reject(2); $this->assertEquals(1, $finalValue); }