// 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 和第三方module到处都包含 return 语句。那么什么时候应该使用 return 语句,什么时候不应该呢?
有人可以对此有所了解吗?