首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能bluebird.Promisifyall通用

不能bluebird.Promisifyall通用
EN

Stack Overflow用户
提问于 2016-08-30 16:23:11
回答 1查看 305关注 0票数 0

通用正在给出gm().write() expects a callback function错误。写函数来自fs,所以我也对它进行了编程。但它仍然不起作用。

代码语言:javascript
复制
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中使用承诺

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-31 03:55:18

蓝知更鸟使用promisifyAll()进行编程的正常方案创建了返回承诺的.writeAsync()。它根本不改变.write()。这假设gm()返回的对象是可以通过gm.prototype获得的对象。

所以,你会这么做:

代码语言:javascript
复制
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模块进行编程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39232598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档