nodejs-什么时候使用异步而不是同步功能?

用户名

我已经阅读了一些有关此内容的文章。但是,我仍然陷入困境。例如,我有两个功能:

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在nodeJS中使同步功能异步

来自分类Dev

nodeJS异步与同步

来自分类Dev

什么时候应该在NodeJS中将连接池与MySQL一起使用

来自分类Dev

nodejs:我什么时候应该使用`setImmediate(cb)`vs`cb()`?

来自分类Dev

Tulip / asyncIO:为什么不是所有调用都异步并指定什么时候应该同步?

来自分类Dev

什么时候使用功能模板而不是通用lambda?

来自分类Dev

nodejs,mysql,异步功能

来自分类Dev

NodeJS中的异步Vs同步

来自分类Dev

NodeJS中的异步Vs同步

来自分类Dev

什么时候可以使用异步?

来自分类Dev

什么时候应该进行同步或异步发送?

来自分类Dev

RequireJS何时需要异步调用?什么时候同步?

来自分类Dev

NodeJS异步

来自分类Dev

什么时候使用列名而不是*?

来自分类Dev

什么时候使用@Bean而不是@Component?

来自分类Dev

什么时候使用向量而不是数组?

来自分类Dev

什么时候使用reduce()而不是sum()?

来自分类Dev

什么时候使用mapc而不是mapcar?

来自分类Dev

NodeJS mongo等待/异步功能

来自分类Dev

在nodeJS中使用异步模块进行涉及for循环的同步执行?

来自分类Dev

nodejs缓冲区是异步还是同步?

来自分类Dev

Nodejs如何知道同步还是异步

来自分类Dev

nodejs缓冲区是异步还是同步?

来自分类Dev

ApiController的异步方法-有什么好处?什么时候使用?

来自分类Dev

什么时候可以同步使用Meteor.call?

来自分类Dev

什么时候可以同步使用Meteor.call?

来自分类Dev

回调不是使用 nodejs 进行异步操作的函数

来自分类Dev

如何使用NodeJS迭代人偶中的异步功能

来自分类Dev

NodeJS Line阅读器库应调用同步而不是异步

Related 相关文章

热门标签

归档