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();
        }
    }
}

?>