I have this code:
setTimeout(function timeout() { console.log('timeout'); }, 0); let p = new Promise(function(resolve, reject) { console.log('create promise'); resolve(); }); p.then(function(){ console.log('execute promise'); }); console.log('end'); I get this order when execute the code:
- create promise
- end
- execute promise
- timeout
Question: Why create promise is executed first? I expect to execute first end, because it is the only one synchrone code so it should be first executed.
new Promise(...)is executed synchronously?