我使用pdfmake创建PDF,然后使用html2canvas获取许多图表的图像 我怎样才能获得html2canvas的Promise的值?
CODE
var img = { token: html2canvas(document.getElementById("chartContainer")).then(canvas => {
return canvas.toDataURL("image/jpeg,1.0")
}).then(canvas =>{return canvas})}
console.log (img.token); // Promise { <state>: "pending" }
alert(img.token); // Object Promise
我想在功能之外使用图像。 谢谢你的帮助!
答案 0 :(得分:0)
如果promises和.then
令人困惑,并且你正试图在未来使用这些和现在使用的值,请考虑async/await
,它允许你编写异步代码有点看起来同步的方式:
const canvas = await html2canvas(document.getElementById("chartContainer"));
const token = canvas.toDataURL("image/jpeg,1.0");
const img = { token };
console.log (img.token);
alert(img.token);
在内部,上面的代码被编译或解释为等待html2canvas
承诺履行,使用等效的.then
。换句话说,它最终看起来像这样:
html2canvas(document.getElementById("chartContainer"))
.then(canvas => {
const token = canvas.toDataURL("image/jpeg,1.0");
const img = { token };
console.log (img.token);
alert(img.token);
});
或者,如果您因某些原因不想使用async/await
,那么您可以这样写它。
PS。假设上面的代码在函数内,它需要是async function
。