Junior — Senior
Interaction of setTimeout and Promise with different delays
livecode
Task condition
It is necessary to explain the order in which messages will appear in the console when functions setTimeout and promises with different timeouts are used simultaneously.
(() => {
const myPromise = (delay) => new Promise((res, rej) => {
setTimeout(res, delay);
});
setTimeout(() => console.log("in setTimeout1"), 1000);
myPromise(1000).then(res => console.log("in Promise 1"));
setTimeout(() => console.log("in setTimeout2"), 100);
myPromise(2000).then(res => console.log("in Promise 2"));
setTimeout(() => console.log("in setTimeout3"), 2000);
myPromise(1000).then(res => console.log("in Promise 3"));
setTimeout(() => console.log("in setTimeout4"), 1000);
myPromise(5000).then(res => console.log("in Promise"));
})();