javascript - 如何从 Promise 中检索数据
问题描述
我正在尝试使用 Mammoth Node.js 包将文件从 Docx 转换为 HTML。Mammoth 自述文件建议使用以下格式转换文件:
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 内容输出到控制台。我需要关于如何从承诺之外返回/使用 html 变量的建议,谢谢。
解决方案
当函数返回 Promise 时,您会从函数中获得 Promise,并为 Promise 解决时设置某种效果。你可以通过使用then
. 这是一个相当粗略的解释,我建议您阅读有关承诺的文档。
以下是代码的外观:
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))
推荐阅读
- jenkins - 针对开放 PR 提交的 Jenkins web-hook 触发器
- android - Android Studio 调试器只工作一次
- c# - c#替换՛字符
- django - 如何使用 SQS 代理监控 celery 中的任务?
- node.js - NestJS REST API 因长时间运行的请求而超时
- javascript - 如何摆脱 Plotly 图表顶部的空白?
- mysql - 1292 截断不正确的 DOUBLE 值:''
- swiftui - 用动作调用 SwiftUI 按钮?
- abp - 如何在 Abp 中隐藏默认服务端点
- java - JUnit:断言集合包含具有特定属性的元素