1 回答
TA贡献1780条经验 获得超4个赞
如果你想循环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);
}
由于这是在一个async函数中,因此await sleep(1000)(注意:not delay,您的基于 promise 的sleep)让浏览器允许它进行任何绘图等。
这是一个简单的示例,只需在其中添加一个 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);
}
})();
添加回答
举报