我知道這已經被問過很多次了,但是異步/承諾的概念對我來說非常模糊!我正在嘗試使用html2canvas截取螢屏截圖,一旦生成(或多個)螢屏截圖,繼續使用該功能并通過 POST 請求發送它。
這是我到目前為止所做的:
async function take_screenshot1() {
const screenshotTarget = document.body;
const screenshot1 = html2canvas(screenshotTarget).then((canvas) => {
const screenshot1 = canvas.toDataURL();
return screenshot1
});
return screenshot1
}
var screenshot1 = take_screenshot1()
和
async function take_screenshot() {
return new Promise((resolve, reject) => {
setTimeout(() => {
const screenshotTarget = document.body;
var result = html2canvas(screenshotTarget).then((canvas) => {
const screenshot1 = canvas.toDataURL();
});
resolve(result);
}, 300);
});
}
var screenshot = await take_screenshot();
console.log(`After await: ${screenshot}`);
console.log("I expect to be after the values");
如果有人能給我一些關于我哪里出錯的建議,我將不勝感激!謝謝你的時間!
uj5u.com熱心網友回復:
這取決于您如何對資料進行分組,但這是一個簡單的示例。async函式回傳一個承諾,所以你也需要等待它們。
const { body } = document;
async function takeScreenshot() {
const screenshot = await html2canvas(body);
return screenshot.toDataURL();
}
async function main() {
const canvas = await takeScreenshot();
body.appendChild(canvas);
}
main();
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/451760.html
標籤:javascript 异步 异步等待 承诺 html2canvas
