我正在開發一個在 React 中可視化排序演算法的網頁。問題是,變化都發生得太快了,龐大的陣列在不到一毫秒的時間內組織起來。我需要一種方法來延遲演算法,以便它在每次更改時停留半秒。我認為改變重繪 率也可能有效。如果您認為有更好的解決方案,請告訴我!
無論哪種方式,通過 setTimouts 延遲排序演算法的進度都不起作用。兩者都沒有承諾或等待。
這是我嘗試過但不起作用的示例:
setTimout(() => {
swap(b, b-1) //swap is a separate method
}, 500)
uj5u.com熱心網友回復:
您發布的代碼每延遲swap
500 毫秒。但它們仍然連續發生,中間沒有空間。聽起來你想要在每個之間延遲,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);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/399847.html
標籤:javascript 数组 反应 排序 延迟
上一篇:動態洗掉元素
下一篇:僅當所選文本穩定時才運行該操作