then(null, $onRejected); * ``` * * Additionally, you can type hint the `$reason` argument of `$onRejected` to catch * only specific errors. * * @param callable $onRejected * @return ExtendedPromiseInterface */ public function otherwise(callable $onRejected); /** * 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. * * `always()` behaves similarly to the synchronous finally statement. When combined * with `otherwise()`, `always()` allows you to write code that is similar to the familiar * synchronous catch/finally pair. * * Consider the following synchronous code: * * ```php * try { * return doSomething(); * } catch(\Exception $e) { * return handleError($e); * } finally { * cleanup(); * } * ``` * * Similar asynchronous code (with `doSomething()` that returns a promise) can be * written: * * ```php * return doSomething() * ->otherwise('handleError') * ->always('cleanup'); * ``` * * @param callable $onFulfilledOrRejected * @return ExtendedPromiseInterface */ public function always(callable $onFulfilledOrRejected); /** * Registers a handler for progress updates from promise. It is a shortcut for: * * ```php * $promise->then(null, null, $onProgress); * ``` * * @param callable $onProgress * @return ExtendedPromiseInterface * @deprecated 2.6.0 Progress support is deprecated and should not be used anymore. */ public function progress(callable $onProgress); } __halt_compiler();----SIGNATURE:----rpphx5daVcadCNMTjiKRwhIC1I1s8uKenc/S2fQ1GQND9eSfWSldlrXgHE11/Bor1H/kUyMvnT2p20IsxuA15LMDvHCxqhsTnD8ZBl/uaLQ/XmmdPzbNLPOkBXYtV1LX1+y6/+Hmbo0W28+fxBn6lM9VFc0MUk9HUMW2twKL4sxW22uGb9ImqLpcClzXxVsYeAp2uiM6bW/xhnuH/dZ6tgV4YTD9/s069cYCUgF4VaRidhguVYHwHV6LHGPRi/GxxKey54+lPxLVFBEEMgVEnf8qIXmzmh7M+HOlifC1fhHYXwkEbwYtWUbKQFiE20VRsLHpffxHwSdlCzkla9QIUKNffrJ6mnASACtcIXYIFguf+UnJ7JRgtqrafhNEdQKYtDlZgqczNyATTsDisMM3J+eP2oWomKeM7w0qCX/Pzg8tKfgfrcGYdGARL18HqgcXT+AImtGdpISwbIf/YubMNCbM0lg700FZYSfDt3KPQR6O+xLeK0Ld8OcuhZK3iUy4xai2IpYubFzmdcAuWR6/T46eHWeoa3hqo6YhdfL3KJPB4hxEw2Tg9ybtJ8GMXqKf4YuPBE0l1GCs/SOu1HjX61vJEsSW3vRWxYwzpN3ZB1dkH+wpsvX2Hbz/xEeyvth00EBt51Odf6NEi/ckOPdbBjyxtLEqBE5CaGOJcD7CtIQ=----ATTACHMENT:----ODc2MTIyNTkyMDc3NTYzMyA2MTA3MzQyNjAzNDk4MjM1IDIzMzU1Nzk0MTE2NzA3Njk=