Когда я заменяю ждать html2canvas () с wait myapi.call (), он вызывает 3 API одновременно. Когда я использую wait html2canvas, он позвонит в мой файл test.css, предположим, что мой массив обещаний имеет 3 элемента, каждый раз, когда обрабатывается html2canvas 5S, на вкладке сеть я вижу время для получения test.css друг от друга, а не друг от друга, а не друг от друга, а не друг от друга. звонит почти в то же время. Я не думаю, что проблема в моем коде, пожалуйста, помогите мне знать, где проблема, я где -то ошибается? < /P>
Код: Выделить всё
async convertDivSigToBase64(id) {
try {
var el = document.getElementById(id)
if (!el) {
return ''
}
const options = {
useCORS: true,
scale: 3,
letterRendering: true,
};
let output = await html2canvas(el, options)
const dataUrl = output.toDataURL()
return dataUrl.substring(13 + 'image/png'.length);
} catch (e) {
console.error('Lỗi capture chữ ký', e)
return null;
}
},
async getAllCaptureSig() {
// other logic
console.time("Thời gian chạy getAllCaptureSig");
const promises = [];
console.time('time add promise to array')
promises.push(checkAllElectricSameSize ? this.convertDivSigToBase64(elecId) : null)
promises.push(checkAllDigitalSameSize ? this.convertDivSigToBase64(digitalId) : null)
promises.push(checkAllFlashSameSize ? this.convertDivSigToBase64(flashId) : null)
// console.log(promises)
console.timeEnd('time add promise to array')
const results = await Promise.all(promises);
// console.log('Kết quả của tất cả các hàm convertDivSigToBase64:', results);
if (results[0] != '') {
this.captureElectricSignature = results[0]
}
if (results[1] != '') {
this.captureDigitalSignature = results[1]
}
if (results[2] != '') {
this.captureFlashSignature = results[2]
}
console.timeEnd("Thời gian chạy getAllCaptureSig");
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... romise-all