.then/.catch/.finally .
, .then/.catch/.finally .
:
let promise = Promise.resolve();
promise.then(() => alert(" "));
alert(" "); // alert
, , .
, .
.then ? ?
. PromiseJobs, (microtask queue) ( V8).
- --- (FIFO): , , .
- , .
, , , .then/catch/finally . . JavaScript , .
.
.
.then/catch/finally, . , , .
? ?
, .then:
Promise.resolve()
.then(() => alert(" !"))
.then(() => alert(" "));
, .
: ?
, JavaScript , .
, .
, , .catch , :
let promise = Promise.reject(new Error(" !"));
promise.catch(err => alert('!'));
// ,
window.addEventListener('unhandledrejection', event => {
alert(event.reason);
});
.catch, , , :
let promise = Promise.reject(new Error(" !"));
// !
window.addEventListener('unhandledrejection', event => alert(event.reason));
, , ? :
let promise = Promise.reject(new Error(" !"));
setTimeout(() => promise.catch(err => alert('')), 1000);
// !
window.addEventListener('unhandledrejection', event => alert(event.reason));
, , !, .
, : unhandledrejection? !.
, unhandledrejection , : , - rejected, .
.catch, setTimeout, , , unhandledrejection, .
, .. promise jobs, (microtask queue) ( V8).
, .then/catch/finally .
- .then/catch/finally, .then.
JavaScript, Node.js, . , , : .
<code>, —<pre>, 10 — (plnkr, JSBin, codepen)