我正在使用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。