无法 bluebird.Promisifyall gm
Not able to bluebird.Promisifyall gm
gm 给出 gm().write() expects a callback function
错误。 write 函数来自 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
中使用 promise?
Bluebird 使用 promisifyAll()
进行承诺的正常方案会创建 .writeAsync()
returns 一个承诺。它根本不会改变 .write()
。这假设 gm()
returns 的对象是 Bluebird 可以通过 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 promisified 方法,否则您不必对 fs
模块进行 promisify。
gm 给出 gm().write() expects a callback function
错误。 write 函数来自 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
中使用 promise?
Bluebird 使用 promisifyAll()
进行承诺的正常方案会创建 .writeAsync()
returns 一个承诺。它根本不会改变 .write()
。这假设 gm()
returns 的对象是 Bluebird 可以通过 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 promisified 方法,否则您不必对 fs
模块进行 promisify。