节点异步与同步

时间:2016-03-07 22:53:38

标签: node.js asynchronous

我正在编写一个节点服务器,它从文件系统中读取/删除/添加/ etc文件。异步读取是否有任何性能优势?在等待读取文件时,我无法做任何事情。例如:

deleteStructure: function(req, res) {
  var structure = req.param('structure');
  fs.unlink(structure, function(err) {
    if (err) return res.serverError(err);
    return res.ok();
  });
}

我也在使用http.get向另一台服务器发出请求。异步获取是否有任何性能优势?在等待获取文件时,我无法执行任何操作。例如:

getStructure: function(req, res) {
  var structure = urls[req.param('structure')];
  http.get(structure).then(
    function (response) {
      return res.send(response);
    },
    function (err) {
      res.serverError(err)
    }
  );
}

如果异步读取文件没有性能优势,我可以使用同步方法。但是,我不知道http调用的同步方法,是否存在任何内置方法?

仅供参考我正在使用Sails.js。

谢谢!

1 个答案:

答案 0 :(得分:7)

  

在等待阅读文件时,我无法做任何事情   在等待提取文件时,我无法做任何事情。

错误;您可以处理不相关的HTTP请求。

每当您的代码处于同步操作过程中时,您的服务器根本不会响应其他请求。

这种异步可伸缩性是Node.js的最大吸引力。