Πώς συμβαίνει η εκτέλεση ασύγχρονης Javascript; και πότε να μην χρησιμοποιείται η δήλωση επιστροφής;

// synchronous Javascript
var result = db.get('select * from table1');
console.log('I am syncronous');

// asynchronous Javascript 
db.get('select * from table1', function(result){
    // do something with the result
});
console.log('I am asynchronous')

Γνωρίζω σε σύγχρονο κώδικα, το console.log () εκτελείται μετά την ανάκτηση του αποτελέσματος από το db, ενώ στο asynchronous code console.log () εκτελείται προτού το db.get () πάρει το αποτέλεσμα.

Τώρα η ερώτησή μου είναι, πώς γίνεται η εκτέλεση πίσω από τα παρασκήνια για ασύγχρονο κώδικα και γιατί δεν αποκλείεται;

Έχω αναζητήσει το πρότυπο Ecmascript 5 για να καταλάβω πώς λειτουργεί ο ασύγχρονος κώδικας αλλά δεν μπόρεσα να βρω τη λέξη ασύγχρονη σε ολόκληρο το πρότυπο.

Και από το nodebeginner.org ανακάλυψα επίσης ότι δεν πρέπει να χρησιμοποιήσουμε μια δήλωση επιστροφής καθώς αποκλείει το συμβάν loop. Αλλά το nodejs api και οι λειτουργικές μονάδες τρίτου μέρους περιέχουν δηλώσεις επιστροφής παντού. Άρα πότε πρέπει να χρησιμοποιείται μια δήλωση επιστροφής και πότε δεν πρέπει;

Μπορεί κάποιος να ρίξει λίγο φως σε αυτό;

37
задан bfavaretto 5 January 2013 в 19:39
поделиться