public function spread(callable $onFulfilled = null, callable $onRejected = null, callable $onCancel = null)
{
return $this->then(null, null, function ($reasons) use($onCancel) {
return call_user_func_array($onCancel, (array) $reasons);
});
}