node.js - Node 异步与同步

标签 node.js asynchronous

我正在编写一个 Node 服务器,用于从文件系统读取/删除/添加/等文件。异步读取有什么性能优势吗?在等待读取文件时我什么也做不了。示例:

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。

谢谢!

最佳答案

I can't do anything while waiting for the file to be read.
I can't do anything while waiting for the file to be fetched.

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

只要您的代码处于同步操作的中间,您的服务器将根本不会响应其他请求。

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

关于node.js - Node 异步与同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35855778/

相关文章:

JavaScript:将未定义处理为参数 - 这些解决方案是否相同?

python - 在 Python 网络应用程序中处理较大文件上传的最具可扩展性的方法是什么?

javascript - 为什么这个带有 promise 的测试没有通过?

swift - 代码维护在委托(delegate)和回调模式

javascript - 如何从异步调用返回响应?

node.js - 如何在node.js中执行与我的机器不同的机器的exe

javascript - 安装 ionic 应用程序后看不到 ionic 应用程序图标

javascript - 获取Azure上传的blob文件url

node.js - 如何删除 "google sign in account"以用于开发目的 - Google 上的操作

TypeScript:如何编写异步函数组合的 asyncPipe 函数?