(function () {
console.log("this is the start");
Promise.resolve(console.log("promise 1"));
setTimeout(function cb() {
console.log("timeout 1");
});
console.log("this is just a message");
setTimeout(function cb1() {
console.log("timeout 2");
}, 0);
new Promise((res, rj) => res("promise 3")).then(console.log);
console.log("this is the end");
})();