Was ist die Reihenfolge der Ausführung in Javascript verspricht

Ich möchte mir die Ausführungsreihenfolge des folgenden Snippets erklären, das Javascript-Versprechen verwendet.

Promise.resolve('A')
  .then(function(a){console.log(2, a); return 'B';})
  .then(function(a){
     Promise.resolve('C')
       .then(function(a){console.log(7, a);})
       .then(function(a){console.log(8, a);});
     console.log(3, a);
     return a;})
  .then(function(a){
     Promise.resolve('D')
       .then(function(a){console.log(9, a);})
       .then(function(a){console.log(10, a);});
     console.log(4, a);})
  .then(function(a){
     console.log(5, a);});
console.log(1);
setTimeout(function(){console.log(6)},0);

Das Ergebnis ist

1
2 "A"
3 "B"
7 "C"
4 "B"
8 undefined
9 "D"
5 undefined
10 undefined
6

Ich bin gespannt auf die Ausführungsreihenfolge 1 2 3 7 ... nicht auf die Werte 'A', 'B' ...

Mein Verständnis ist, dass wenn ein Versprechen gelöst wird, die 'dann'-Funktion in die Browser-Ereigniswarteschlange gestellt wird. Meine Erwartung war also 1 2 3 4 ...

@ jfriend00 Danke, vielen Dank für die ausführlichen Erklärungen! Es ist wirklich eine enorme Menge an Arbeit!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage