Sobes.tech
Middle

Promise, setTimeout და სინქრონული კოდის დროს კოდი როდის გამოიტანს რიცხვებს?

sobes.tech AI

პასუხი AI-სგან

JavaScript-ში, Promise, setTimeout და სინქრონული კოდის შესრულების წესს განსაზღვრავს Event Loop და მიკრო- და მაკრო-ტასკების რიგები.

მოდით განვიხილოთ მაგალითი:

console.log('1');

setTimeout(() => {
  console.log('2');
}, 0);

Promise.resolve().then(() => {
  console.log('3');
});

console.log('4');

განმარტება:

  • პირველ რიგში, სრულად შესრულდება სინქრონული კოდი, ამიტომ გამოიტანს 1 და 4.
  • შემდეგ, მიკრო-ტასკები (Promise) შესრულდება, და გამოიტანს 3.
  • ამის შემდეგ, მაკრო-ტასკები (setTimeout) შესრულდება, და გამოიტანს 2.

საბოლოო გამოსვლის წესია: 1, 4, 3, 2.

ამიტომ, სინქრონული კოდი შესრულდება პირველ, შემდეგ მიკრო-ტასკები (Promise), და ბოლოს მაკრო-ტასკები (setTimeout). ეს არის მნიშვნელოვანი წერტილი JavaScript-ის Event Loop-ის გასაგებად.