节点异步与同步

Ale*_*hel 2 asynchronous node.js

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

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

我也使用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)
    }
  );
}
Run Code Online (Sandbox Code Playgroud)

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

仅供参考我使用的是Sails.js.

谢谢!

SLa*_*aks 7

等待文件读取时我无法做任何事情.
在等待获取文件时,我无法执行任何操作.

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

只要您的代码处于同步操作中,您的服务器就不会响应其他请求.

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