请听我仔细讲解。
在JS编写过程中,有时需要控制代码的暂停,可以通过以下几种方法实现。
setTimeout
方法可以在指定延时后执行一个函数,可以通过在该函数中添加代码暂停的逻辑来控制代码的暂停。
示例代码:
function pauseAfter3s() {
console.log('开始执行');
setTimeout(function() {
console.log('3秒后暂停');
// 在此处添加暂停逻辑
console.log('暂停结束');
}, 3000);
}
pauseAfter3s();
在该示例代码中,setTimeout
函数会在3秒后执行包含暂停逻辑的匿名函数,从而实现控制代码暂停的效果。
使用 Promise
可以优雅地控制代码的执行顺序和暂停,在 Promise
中,需要通过 resolve
函数来控制代码的继续执行,在需要暂停的地方则可以调用 await
来挂起代码的执行。
示例代码:
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function pauseAfter3s() {
console.log('开始执行');
await sleep(3000);
// 在此处添加暂停逻辑
console.log('暂停结束');
}
pauseAfter3s();
在该示例代码中,使用 Promise
定义了一个 sleep
函数,该函数会休眠指定时间后再执行 resolve
函数,从而实现控制代码的暂停,pauseAfter3s
函数则通过 await
来实现在 sleep
函数中暂停代码的效果。
以上就是利用 setTimeout
和 Promise
两种方法控制代码暂停的实现方案,都可用于编写异步代码时的控制流程,选择哪种方案由实际需求和个人口味决定。