Синхронӣ ва асинхронӣ рамз дар JavaScript
Рамзи зеринро дида мебароем:
console.log('1');
console.log('2');
Ошкорост, ки аввал нахустин чопи ба консоль кор мекунад, сипас - дуюм. Яъне фармонҳои рамзи мо дар навбат иҷро мешаванд - дар тартиби пайравӣ онҳо дар рамз. Чунин рамз номида мешавад синхронӣ.
Акнун рамзи зеринро дида мебароем:
setTimeout(function() {
console.log('1');
}, 3000);
console.log('2');
Дар ин ҳолат фармонҳо дар тартиби пайравӣ дар рамз иҷро намешаванд: нахустин чоп ба консоль вақте иҷро мешавад, ки вақти он мерасад, аммо рамзи боқӣ ин лаҳзаро интизор намешавад, балки иҷро шудани худро давом медиҳад. Чунин рамз номида мешавад асинхронӣ.
Рамзи асинхронӣ дар JavaScript ба таври кофӣ ба миён меояд: ҳангоми кор бо таймерҳо, ҳангоми замима кардани мудирони рӯйдодҳо, ҳангоми бор кардани тасвирҳо, ҳангоми кор бо технологияи AJAX, имкон медиҳад, ки қисмҳои саҳифаро аз сервер бор кунед, ҳангоми кор бо NodeJS, ки намояндагӣ мекунад JavaScript-и серверӣ.