Middle
Kas ir makro un mikro uzdevumi?
sobes.tech AI
Atbilde no AI
Mikrozadashanas — tas ir mazāki, detalizētāki darbi, kas tiek veikti pēc pašreizējās makrozadashanas pabeigšanas un pirms nākamās sākšanas. Tie ietver Promise apstrādi, MutationObserver, queueMicrotask.
Galvenā atšķirība ir tā, ka mikrozadashanas vienmēr tiek izpildītas uzreiz pēc pašreizējās makrozadashanas, bet nākamā makrozadashana (piemēram, nākamais atjauninājuma kadrs vai setTimeout) tiek izpildīta tikai tad, kad mikrozadashanu rinda ir tukša.
Izpildes kārtība piemēram:
// Makrozadashana (sākotnējais kods)
console.log('Sākums');
// Makrozadashana (tīmekļa laiks)
setTimeout(() => {
console.log('Tīmekļa laiks');
}, 0);
// Mikrozadashana (prmisis)
Promise.resolve().then(() => {
console.log('Prmisis');
});
// Makrozadashana (sākotnējā koda beigas)
console.log('Beigas');
Konsoles izvade:
Sākums
Beigas
Prmisis
Tīmekļa laiks
Izpildes kārtība:
- Sākotnējā makrozadashana (galvenais skripts).
console.log('Sākums').setTimeoutieliek makrozadashanu rindā.Promise.resolve().then()ieliek mikrozadashanu rindā.console.log('Beigas').- Galvenā makrozadashana ir pabeigta.
- Pārbauda mikrozadashanu rindu un izpilda
Promise.resolve().then(). console.log('Prmisis').- Mikrozadashanu rinda ir tukša.
- Pārlūkprogramma apstrādā notikumu ciklu un pāriet uz nākamo makrozadashanu.
- Izpildās
setTimeoutmakrozadashana. console.log('Tīmekļa laiks').- Makrozadashana ir pabeigta.
Šis sapratne ir svarīga asinhrono operāciju izpildes kārtības pārvaldībai un Event Loop darba izpratnei.