Если вы хотите, чтобы l oop - fplDeltas
и вызывали drawChart
с каждой дельтой, разделенной секундой, вы можете сделать это следующим образом:
// So we skip the `sleep` the first time
let first = true;
for (const delta of fplDeltas) {
// Sleep on all but the first
if (first) {
first = false;
} else {
await sleep(1000);
}
// Draw the chart
drawChart(delta);
}
Так как это в * Функция 1006 *, await sleep(1000)
(примечание: не delay
, ваше обещание sleep
) уступает браузеру, позволяя ему делать любые рисунки, и т. Д. c.
Вот простой пример добавления элемента DOM в drawChart
:
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
async function example() {
const fplDeltas = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let first = true;
for (const delta of fplDeltas) {
// Sleep on all but the first
if (first) {
first = false;
} else {
await sleep(1000);
}
// Draw the chart
drawChart(delta);
}
}
function drawChart(delta) {
const div = document.createElement("div");
div.textContent = delta;
document.body.appendChild(div);
}
(async () => {
try {
await example();
console.log("Done");
} catch (e) {
console.error("Error:", e);
}
})();