如何在 React.js 中创建延迟
How to create a delay in React.js
我正在制作一个可视化 React 排序算法的网页。问题是,变化都发生得太快了,海量阵列在不到一毫秒的时间内就组织起来了。我需要一种方法来延迟算法,以便它在每次更改时停留半秒钟。我认为更改刷新率也可能有效。如果您认为有更好的解决方案,请告诉我!
无论哪种方式,通过setTimouts延迟排序算法的进度一直没有奏效。既没有承诺也没有等待。
这是我尝试过但没有奏效的示例:
setTimout(() => {
swap(b, b-1) //swap is a separate method
}, 500)
您发布的代码每 swap
延迟 500 毫秒。但是所有这些仍然连续发生,中间没有 space。听起来您希望在每个 swap
之间有一个延迟,这样排序可视化就会变慢。像这样的伪代码可能会起作用:
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function sortingAlgorithm() {
while(/*not sorted yet*/) {
swap(b, b-1)
await sleep(500);
}
}
我正在制作一个可视化 React 排序算法的网页。问题是,变化都发生得太快了,海量阵列在不到一毫秒的时间内就组织起来了。我需要一种方法来延迟算法,以便它在每次更改时停留半秒钟。我认为更改刷新率也可能有效。如果您认为有更好的解决方案,请告诉我!
无论哪种方式,通过setTimouts延迟排序算法的进度一直没有奏效。既没有承诺也没有等待。
这是我尝试过但没有奏效的示例:
setTimout(() => {
swap(b, b-1) //swap is a separate method
}, 500)
您发布的代码每 swap
延迟 500 毫秒。但是所有这些仍然连续发生,中间没有 space。听起来您希望在每个 swap
之间有一个延迟,这样排序可视化就会变慢。像这样的伪代码可能会起作用:
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function sortingAlgorithm() {
while(/*not sorted yet*/) {
swap(b, b-1)
await sleep(500);
}
}