Promesa vs setTimeout

Lo he observado en el siguiente código:

setTimeout(function(){console.log('setTimeout')});
Promise.resolve(1).then(function(){console.log('promise resolve')})

No importa cuántas veces ejecute esto, la devolución de llamada de promesa siempre se registra antes de setTimeout.

Tengo entendido que ambas devoluciones de llamada están programadas para ejecutarse en el siguiente tic, y realmente no entiendo lo que está sucediendo que hace que la promesa siempre tenga prioridad sobre el tiempo de espera.

Respuestas a la pregunta(5)

Su respuesta a la pregunta