async function async1() {
console.log('async1 start')
await async2()
console.log('async1 end')
}
async function async2() {
console.log('async2')
}
console.log('begin')
setTimeout(function () {
console.log('setTimeout 0');
});
async1();
new Promise(function (resolve) {
console.log('promise1');
for (let i = 0; i < 1000; i++) {
i === 99 && resolve();
}
console.log('promise2');
}).then(function () {
console.log('then1');
setTimeout(() => {
console.log('setTimeout2 between promise1&2')
})
}).then(() => {
console.log('promise 3')
});
console.log('end')