提问者:小点点

jimp.read从不运行回调并挂断


我正在尝试制作一个不和谐的机器人,我的一个命令调整一个请求的图像大小并发送它。但当我运行该命令时,它只是挂断,没有错误消息。如果我取出回调并正常运行它,它发送,但发送的是请求的最后一个映像,而不是刚才的映像。

function resizeImg(id,_callback) {
            const img = Jimp.read('image.png')
                .then(img => {
                    return img
                        .resize(100,130)
                        .write('temp.png');
                    _callback();
                })
            .catch(console.error);
}

resizeImg(id,function() {
            var attachment = new Discord.MessageAttachment('./temp.png')
            msg.channel.send('',attachment)
});

共1个答案

匿名用户

由于return语句停止了执行,因此节点永远不会到达您的回调。

function resizeImg(id, _callback) {
  Jimp.read('image.png').then(img => {
    const img = img.resize(100,130).write('temp.png');
    _callback(img);
  })
  .catch(console.error);
}

resizeImg(id,function(img) {
  var attachment = new Discord.MessageAttachment('./temp.png')
  msg.channel.send('',attachment)
});

试试上面的代码。现在可以通过回调中的参数访问img。