Хотя детали реализации между реальной жизнью и нашим примером немного отличаются, концепция та же: вы запускаете «что-то делать», и обратный вызов будет вызываться через тот или иной механизм, когда работа будет завершена.

// 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, а когда - нет?

Может кто-нибудь пролить свет на это?

Ответы на вопрос(2)

Ваш ответ на вопрос