public function then(callable $complete, $priority = 0) : PromiseMap { $promise = new PromiseTestObject(null); $promise->setFulfillCallback(function ($result, $params) use($complete) { $complete($result, $params); }); $this->addPromiseCallback($promise, $priority); return $promise; }
public function testPromiseResult() { $main_promise = new PromiseTestObject(null); $result_array = null; $test_array = array('testing', 'that', 'this', 'works'); $main_promise->setContract(function () use($main_promise, $test_array) { $main_promise->fulfillPromise(PromiseMap::PROMISE_SUCCESS, $test_array); }); $main_promise->then(function ($result, array $results) use(&$result_array) { $result_array = $results; }); $main_promise->execute(); $this->assertEquals($test_array, $result_array); $this->assertEquals($main_promise->getPromiseResult(), $result_array); }