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