2016-03-07 142 views
2

我正在写一个节点服务器,用于从文件系统读取/删除/添加/ 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。

谢谢!

回答

6

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

错;你可以处理一个不相关的HTTP请求。

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

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

+0

你回答的问题如此之快,我甚至不能接受它,谢谢。 –