如何从Promise检索数据

时间:2018-11-29 14:45:20

标签: javascript node.js promise mammoth

我正在尝试使用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变量的建议,谢谢。

1 个答案:

答案 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))