如何在 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);
  }
}