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-ის გასაგებად.