如何使函数在react js中暂停执行n秒



我只是想在bubble排序中进行每次交换后停止执行,这样我就可以看到变化,因此我如何让函数暂停执行几秒钟,即在reactjs 中有一个相当于sleep((函数的python

bubbleSort(){
const {array} = this.state;
for(let i = 0; i < array.length; i++){
for(let j = 0; j < array.length-i-1; j++){
if(array[j] > array[j+1]){
let temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
//halt for an interval on n seconds
}
}
}   
}

您可以使用PromisessetTimeout创建自定义sleep函数,并在async/awaitbubbleSort中使用,如下所示:-

let state = {array:[2,3,1,9,-23,4,5,6]}
async function bubbleSort(){
const {array} = state;
for(let i = 0; i < array.length; i++){
for(let j = 0; j < array.length-i-1; j++){
if(array[j] > array[j+1]){
let temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
await sleep(1000);
console.log('Halted');
}
}

}   
return state.array;
}
function sleep(duration){
return new Promise((resolve)=>{
setTimeout(resolve,duration)
})
}

bubbleSort();

最新更新