// 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, тогда как в асинхронном коде console.log() выполняется до того, как db.get() извлекает результат.
Теперь мой вопрос: как выполнение происходит за кулисами для асинхронного кода и почему оно не блокирует?
Я искал стандарт Ecmascript 5, чтобы понять, как работает асинхронный код, но не смог найти слово асинхронным во всем стандарте.
И с nodebeginner.org я также узнал, что мы не должны использовать оператор return, поскольку он блокирует цикл события. Но nodejs api и сторонние модули содержат операторы return везде. Итак, когда должен использоваться оператор return, а когда он не должен?
Может кто-нибудь пролить свет на это?