【发布时间】:2014-03-27 12:30:53
【问题描述】:
我是糖的忠实粉丝。以下是Node.JS 中 gzip 压缩语句的工作原理:
var q = require('qtree');
var zlib = require('zlib');
q(someData)
.then(q.nbind(zlib.gzip, zlib))
.then(function(gzippedData) {
// play with gzipped data
})
.done();
现在zlib.gzip 是一种便捷方法,根据Node Documentation:
便捷方法对所有选项使用默认设置。
现在,如何为这些便捷方法设置(默认)选项?因为我不能在第一次使用相同的糖写作风格时:
var gzip = zlib.createGzip({
level : zlib.Z_BEST_COMPRESSION
});
这个新的gzip 不是gzip(input, callback) 形式的函数,所以我不能那样使用它。
【问题讨论】:
-
在 gzip.createGzip 之上创建您自己的 promisified 方法,该方法通过管道连接到它并挂钩它完成。然后调用该方法而不是
q.nbind...:) -
这是我试图规避的解决方案,因为任何好的“框架”都应该开箱即用地完成“大量工作”。我想出了一个简单的解决方案,我将作为答案发布。
标签: node.js compression gzip zlib q