通用正在给出gm().write() expects a callback function错误。写函数来自fs,所以我也对它进行了编程。但它仍然不起作用。
var gm = bluebird.promisifyAll(require("gm"));
var fs = bluebird.promisifyAll(require("fs"));
gm(filePath).resize(null, 128).write(file)
.then(function() {
console.log("Done");
})
.catch(function(err) {
console.log(err);
});如何在gm中使用承诺
发布于 2016-08-31 03:55:18
蓝知更鸟使用promisifyAll()进行编程的正常方案创建了返回承诺的.writeAsync()。它根本不改变.write()。这假设gm()返回的对象是可以通过gm.prototype获得的对象。
所以,你会这么做:
const gm = require("gm");
bluebird.promisifyAll(gm.prototype);
gm(filePath).resize(null, 128).writeAsync(file).then(function() {
console.log("Done");
}).catch(function(err) {
console.log(err);
});注意:除非您自己直接使用fs编程方法,否则您不必对fs模块进行编程。
https://stackoverflow.com/questions/39232598
复制相似问题