どなたか、次の JS のコードの結果が、2,5,3 ではなく、2,3,5 になっている理由を説明出来ますか?

console.log( "0" );
var sample = new Promise( function(resolve, reject) {
  console.log( "1" );
  setTimeout(function() {
    console.log( "2" );
    resolve();
    console.log( "3" );
  }, 1000);
});
console.log( "4" );
sample.then( function(value) {
  console.log( "5" );
});
console.log( "6" );

[結果]
0
1
4
6
2
3
5