首页 > 解决方案 > 异步函数调用中的回调错误

问题描述

我正在尝试使用 Promise 中的异步调用转换图像格式。我不知道节点是如何工作的,但我不明白为什么我会得到TypeError: callback is not a function.. 回溯指出了 webp-converter 模块中的这个错误。

const webp = require('webp-converter');

...

.then(() => {


    return new Promise( (resolve, reject) => {
        webp.cwebp(tempLocalFilename, newLocalFilename, status =>
        {
            console.log(status);
        });
    });
  })

这里有什么明显的东西会导致这种情况吗?我不确定要包含什么代码,所以如果需要我可以添加更多。

标签: javascriptnode.js

解决方案


请参阅文档:

https://www.npmjs.com/package/webp-converter

调用webp.cwebp时,应该有四个参数:输入(字符串)、输出(字符串)、选项(字符串)和回调。尝试指定一些选项,然后是回调。此外,在操作完成后尝试调用resolve,这样您就可以在之后链接其他函数:

webp.cwebp(
  tempLocalFilename,
  newLocalFilename,
  "-q 80",
  function(status) {
    console.log(status);
    if (status === '100') resolve();
    else reject();
  }
);

推荐阅读