PromiseClass.php
839 Bytes
<?php
namespace App\Http\Controllers;
use Auth;
use DB;
use Input;
use Log;
use Response;
class PromiseClass {
private $callbacks = array();
private $last_return;
function promise($users = null,$crmcall = null,$promise) {
if (get_class($promise) == 'Promise') {
return $promise;
} else if (is_callable($promise)) {
$this->then($promise);
return $this;
}
}
public function then (callable $callback) {
$this->callbacks[] = $callback;
return $this;
}
public function resolve () {
$callback = array_shift($this->callbacks);
if (is_callable($callback)) {
$this->last_return = $callback($this->last_return);
}
if (count($this->callbacks) > 0) {
$this->resolve();
}
}
}
?>