Allows you to execute "cleanup" type tasks in a promise chain.
It arranges for $onFulfilledOrRejected
to be called, with no arguments,
when the promise is either fulfilled or rejected.
- If
$promise
fulfills, and $onFulfilledOrRejected
returns successfully,
$newPromise
will fulfill with the same value as $promise
.
- If
$promise
fulfills, and $onFulfilledOrRejected
throws or returns a
rejected promise, $newPromise
will reject with the thrown exception or
rejected promise's reason.
- If
$promise
rejects, and $onFulfilledOrRejected
returns successfully,
$newPromise
will reject with the same reason as $promise
.
- If
$promise
rejects, and $onFulfilledOrRejected
throws or returns a
rejected promise, $newPromise
will reject with the thrown exception or
rejected promise's reason.
finally()
behaves similarly to the synchronous finally statement. When combined
with catch()
, finally()
allows you to write code that is similar to the familiar
synchronous catch/finally pair.
Consider the following synchronous code:
try {
return doSomething();
} catch(\Exception $e) {
return handleError($e);
} finally {
cleanup();
}
Similar asynchronous code (with doSomething()
that returns a promise) can be
written:
return doSomething()
->catch('handleError')
->finally('cleanup');