Σύγχρονος και Ασύγχρονος Κώδικας στο JavaScript
Ας εξετάσουμε τον ακόλουθο κώδικα:
console.log('1');
console.log('2');
Προφανώς, πρώτα θα εκτελεστεί η πρώτη έξοδος στην κονσόλα, και μετά - η δεύτερη. Δηλαδή, οι εντολές του κώδικά μας εκτελούνται η μία μετά την άλλη - με τη σειρά που ακολουθούν στον κώδικα. Αυτός ο κώδικας ονομάζεται σύγχρονος.
Ας εξετάσουμε τώρα τον ακόλουθο κώδικα:
setTimeout(function() {
console.log('1');
}, 3000);
console.log('2');
Σε αυτήν την περίπτωση, οι εντολές δεν εκτελούνται με τη σειρά που ακολουθούν στον κώδικα: η πρώτη έξοδος στην κονσόλα θα εκτελεστεί όταν έρθει η στιγμή της, αλλά ο υπόλοιπος κώδικας δεν περιμένει αυτή τη στιγμή, αλλά συνεχίζει να εκτελείται. Αυτός ο κώδικας ονομάζεται ασύγχρονος.
Ο ασύγχρονος κώδικας εμφανίζεται στο JavaScript αρκετά συχνά: κατά την εργασία με χρονοδιακόπτες, κατά τη σύνδεση χειριστών γεγονότων, κατά τη φόρτωση εικόνων, κατά την εργασία με την τεχνολογία AJAX, που επιτρέπει τη φόρτωση τμημάτων της σελίδας από τον διακομιστή, κατά την εργασία με το NodeJS, που αντιπροσωπεύει έναν διακομιστικό JavaScript.