【问题标题】:"callback is not a function" error while finish writeStream完成 writeStream 时出现“回调不是函数”错误
【发布时间】:2021-06-27 15:41:22
【问题描述】:

变量头像是文件路径,不用管它。

function rm (){
        fs.rm(avatar)
    }
writeStream.on("finish", rm())

但它显示此错误:

TypeError: callback is not a function
    at CB (internal/fs/rimraf.js:59:5)
    at internal/fs/rimraf.js:90:14
    at FSReqCallback.oncomplete (fs.js:171:23)

【问题讨论】:

    标签: node.js eventemitter createwritestream


    【解决方案1】:

    更改为writeStream.on("finish", rm)rm()() 的存在意味着立即调用函数并将返回结果(即undefined)作为函数参数传递,这肯定不是你想要的,因此你得到了错误。

    【讨论】:

    • @bahoz99 - 也许您在代码的其他部分也有同样的编程错误?如果您需要有关此代码的进一步帮助,请向我们展示更多代码以及您仍然遇到的确切错误。从您向我们展示的代码来看,这是一个必需的修复。 fs.rm() 也可能需要一个回调函数(我不知道该方法来自哪里,因为它不是 fs 模块的标准部分)。
    【解决方案2】:

    我已经解决了这个问题。
    我变了

    function rm (){
            fs.rm(avatar)
        }
    

    function rm (){
            fs.unlinkSync(avatar)
            
        }
    

    【讨论】:

    • 此修复与您在问题中显示的堆栈跟踪和错误完全无关。是的,一旦您通过我的回答修复了第一个错误,这可能是您在该代码中遇到的另一个错误。这实际上不是您提出的问题的答案。
    • 这将是关于同步
    猜你喜欢
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 2015-10-20
    • 2012-09-30
    • 1970-01-01
    • 2017-02-14
    相关资源
    最近更新 更多