Мне нужно сгенерировать изображения в моем приложении NodeJS, используя Pageres
Я делаю это на al oop. Итак, у меня есть 2 варианта:
Вариант 1:
async function makePngScreenshot(url, meterId, filename) {
axios.get(url, null); // Make the request to generate html page
await new Pageres({delay: 2, filename: filename})
.src(url, ['1300x650'], {crop: true})
.dest("public/images/" + operation.data.name + "/" + yearAndMonthFolder + "/" + meterId
)
.run();
}
И затем вызовите его:
for (let firstDay = monday; firstDay < lastDay; firstDay.add(7, "day")) {
await makePngScreenshot(url, id, filename);
}
Этот метод хорош, но он очень медленный, так как он генерирует скриншоты один за другим.
Вариант 2:
Второй метод, предназначенный для генерации скриншотов с одновременным использованием:
function makePngScreenshot(url, meterId, filename) {
axios.get(url, null); // Make the request to generate html page
(async () => { // Make screenshot
await new Pageres({delay: 2, filename: filename})
.src(url, ['1300x650'], {crop: true})
.dest("public/images/" + operation.data.name + "/" + yearAndMonthFolder + "/" + meterId
)
.run();
})();
}
И вызывает его:
for (let firstDay = monday; firstDay < lastDay; firstDay.add(7, "day")) {
makePngScreenshot(url, id, filename);
}
console.log("done")
Этот метод намного быстрее, и я хотел бы его использовать, но я не знаю, как напечатать done
после создания всех снимков экрана, прямо сейчас он печатается до генерации.
Как можно узнать об окончании всех потоков?