public function run()
{
$this->setState(PROMISABLE::PENDING);
try {
$this->onFulfill();
} catch (\Exception $ex) {
$this->setState(PROMISABLE::ERROR, $ex);
} finally {
switch ($this->state) {
case PROMISABLE::PENDING:
case null:
$this->setState(PROMISABLE::FULFILLED);
break;
}
}
}