我正在尝试使用Mammoth Node.js包将文件从Docx转换为HTML。猛mm自述文件建议使用以下格式来转换文件:
var mammoth = require("mammoth");
mammoth.convertToHtml({path: "path/to/document.docx"})
.then(function(result){
var html = result.value; // The generated HTML
var messages = result.messages; // Any messages, such as warnings during conversion
})
.done();
我已将此模板代码放在convertDoc
函数中,并且在调用html
函数后,我尝试在代码的其他位置使用convertDoc
的值。
在return html
函数内的任何地方放置convertDoc
语句将不允许我使用存储的html,但是我可以将正确的html内容输出到控制台。我需要有关如何从Promise之外返回/使用html变量的建议,谢谢。
答案 0 :(得分:1)
当函数返回promise时,您将从函数中获得promise,并为promise解析时设置某种效果。您可以通过使用then
将函数传递给promise来实现。这是一个粗略的解释,我建议您read the docs on promises.
这是代码的外观:
const mammothMock = {
convertToHtml: path => Promise.resolve({value: `<p>Test Html from ${path}</p>`})
}
const mammoth = mammothMock;
const convertFileToHtml = youCouldTakeAPathHere => mammoth
.convertToHtml(youCouldTakeAPathHere)
.then(function(result){
return result.value;
})
convertFileToHtml('some/test/path.docx')
.then(result => document.body.append(result))