gpt4 book ai didi

javascript - 将模块函数传递给另一个文件中的函数

转载 作者:搜寻专家 更新时间:2023-10-31 23:26:47 26 4
gpt4 key购买 nike

我不太确定这里发生了什么,但它已经困扰了我一段时间。 marked Node Markdown 解析器的工作方式如下:

var marked = require('marked');
marked.setOptions({ mathjax : false });

一切正常。但是我正在构建一个插件系统,我想将标记的模块函数传递给另一个文件中的函数并在该函数中设置选项:

// main.js
var marked = require('marked');
var plugin = require('./plugin');
plugin(marked);
marked("# my markdown\n $$5 + 5$$", function(err, result) {
// this result still parses mathjax. Setting the option in the main
// file will disable mathjax.
console.log(result);
});

// plugin.js
module.exports = function(marked) {
marked.setOptions({ mathjax: false });
}

marked 函数被正确传递到我的插件函数,并且调用了 setOptions 函数,但是当我之后在我的程序中使用 marked 时主脚本,未设置选项。如果我在主脚本中设置选项,它就可以工作。

我有点不确定 marked 是否是一个 Function 及其 setOptions() 的实现可能是造成这种情况的罪魁祸首?

有什么想法吗?

最佳答案

你说你改用 kramed,一个 looking at the definition setOptions 返回 kramed 的一个实例。因此,在另一个文件中设置选项可能不会改变 main.js 中的 kramed 的全局实例。最起码改成下面的作品:

// main.js
var kramed = require('kramed');
var plugin = require('./plugin');
kramed = plugin(kramed);
kramed("# my markdown\n $$5 + 5$$", function(err, result) { console.log(result); });

//plugin.js
module.exports = function(kramed) {
return kramed.setOptions({ mathjax: false });
}

关于javascript - 将模块函数传递给另一个文件中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36144500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com