Sobes.tech
Middle

Τι θα εμφανιστεί στην κονσόλα και γιατί;

sobes.tech AI

Απάντηση από AI

Η κονσόλα θα εμφανίσει με την ακόλουθη σειρά:

a
c
b

Εξήγηση:

  • a() — συγχρονική λειτουργία, εμφανίζει άμεσα 'a'.
  • b() — καλεί setTimeout με καθυστέρηση 0, τοποθετεί το callback στην ουρά των macro-tasks, που θα εκτελεστεί μετά από όλες τις micro-tasks και το τρέχον stack.
  • c() — δημιουργεί μια υπόσχεση που λύνεται άμεσα, και το .then της τοποθετεί στην ουρά των micro-tasks.

Ο κύκλος γεγονότων της JavaScript εκτελεί πρώτα όλες τις συγχρονικές λειτουργίες, μετά τις micro-tasks (promises), και τέλος τις macro-tasks (setTimeout). Γι' αυτό, η σειρά είναι πρώτα 'a', μετά 'c', και τέλος 'b'.