我已经阅读了一些有关此内容的文章。但是,我仍然陷入困境。例如,我有两个功能:
function getDataSync(){
var data = db.query("some query");
return JSON.stringify(data);
}
function getDataAsync(){
return db.query("some query",function(result){
return JSON.stringify(result);
});
}
人们说,asynchronous programming
建议在IO绑定中使用。但是,在这种情况下,我看不到任何不同之处。在Async
一个似乎更加难看。
我的观点怎么了?
默认情况下,nodejs是异步的,这意味着它不会像其他语言那样按顺序执行您的语句
database.query("SELECT * FROM hugetable", function(rows) {
var result = rows;
});
console.log("Hello World");
换句话说,它将等到查询语句完成执行。但是在nodejs中,它将单独执行查询语句,然后继续执行以登录Hello World
到屏幕。
所以当你说
function getDataSync(){
var data = db.query("some query");
return JSON.stringify(data);
}
它将在db.query返回数据之前返回数据
function getDataAsync(){
return db.query("some query",function(result){
return JSON.stringify(result);
});
}
但是以node.js的方式将作为参数传递的函数称为回调,这意味着它将在getDataAsync()
完成执行时调用
我们在nodejs中使用回调,因为我们不知道何时db.query()
完成执行(因为它们没有按顺序完成执行),但是当完成时将调用回调。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句