首页 > 解决方案 > 基于布尔返回函数的模块不返回正确的函数

问题描述

我正在使用这个库来控制我的脚本中的 ffprobe。为了避免在我的脚本中创建更多子进程,我需要使用库中命令的同步版本。根据文档,它应该像设置一样简单probe.SYNC = true

但是,无论probe.SYNC调用探测函数的值如何,总是使用doProbe而不是使用doProbeSync

// index.js
import probe from 'node-ffprobe';

probe.SYNC = true;

let data = probe('video.mp4'); // Incorrectly calls doProbe()

// node-ffprobe.js
module.exports = (function () {
    function doProbeSync(file) {
        ...
    }

    function doProbe(file) {
        ...
    }

    return module.exports.SYNC ? doProbeSync : doProbe
})()

我认为这可能不起作用的唯一原因是因为我的脚本是用 ES6 语法编写的,但我不确定这会如何影响这一点。

如何让 node-ffprobe 库使用doProbeSync

标签: node.js

解决方案


推荐阅读