Node.js AWS Lambda中的第二次调用ImageMagick操作失败

时间:2019-06-24 10:07:20

标签: node.js aws-lambda imagemagick

我正在使用AWS Lambda通过ImageMagick操纵图像。使用若干ImageMagick操作将图像处理几次。我以前使用一系列回调构建了它。它起作用了,但是我很快就陷入了回调地狱,因此我使用了一系列的promise和async / await来重建它。

使用此方法遇到的问题是,一次ImageMagick操作被调用两次,但在第二次调用时失败。

这是我正在调用的功能:

const blackAndWhite = function splitThreshold(imagePath, threshold) {
  return new Promise((resolve, reject) => {
    im.convert([imagePath, '-threshold', threshold, imagePath], () => {
        // send response
         resolve (imagePath);
    });
  });
};

我是从处理程序内部这样调用它的:

workingFile = await blackAndWhite2(imagePath, '80%');

但我不断收到错误消息:

TypeError: callback is not a function at Accumulator.callback

我使用了一系列console.log语句在第二次调用时将问题定位到此代码行:

im.convert([imagePath, '-threshold', threshold, imagePath], () => {

我尝试将ImageMagick操作包装在两个单独的函数中,但是仍然遇到相同的问题,因此我假设问题出在某个地方。

有关信息,我正在使用Node.js v8.10。

0 个答案:

没有答案