Promise / 2
by roskoshinsky
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
</head>
<body>
<p>Promise / 3</p>
<pre id="log" >
</pre>
</body>
</html>
CSS
body { background:#000; color:#0f0; font-family: Courier New; font-weight:200; font-size:10pt; }
JavaScript
console.loghe = document.getElementById("log");
console.logh = function(s){
console.loghe.innerHTML += (console.loghe.innerHTML.length ? "\n" : "") + s;
} // hlog
let oPromise0 = new Promise(function(resolve, reject){
console.log(p0);
setTimeout(resolve, 1000); // Не вызывается
setTimeout(reject, 500); // Вызывается
});
oPromise0.then(
xResolve => {
console.logh("oPromise0.then.resolve", xResolve);
},
xReject => {
console.logh("oPromise0.then.reject", xReject);
}
).then(
xResolve => {
/*
Данный код запускается, если предыдущиая функция resolve не возвращает Promise. Если предыдущая функция resolve вернула бы Promise, то он смог бы управлять тем, будет ли вызываться данная функция resolve, либо соседняя reject.
*/
console.logh("oPromise0.then.then.resolve", xResolve);
},
xReject => {
console.logh("oPromise0.then.then.reject", xReject);
}
); // then