javascript - 如何暂停/恢复/延迟for循环?
问题描述
您将如何暂停/恢复/延迟 Javascript 中的 for 循环?
假设我有这样的东西
for (let i = 0; i < 10; i++) {
console.log('value of i is',i)
}
我们可以使用类似这样的东西来延迟整个函数,但它不适用于 for 循环
function delayAFn(ms){
return new Promise(resolve => setTimeout(() => {
resolve();
}, ms))
}
解决方案
我们过去会做的是一种队列类型的设置,如果它仍然很好,您可以使用超时来调用下一次迭代。
function nextStep(i) {
console.log(`value of i is ${i}`)
if (i < 9) {
window.setTimeout(nextStep, 1000, ++i)
} else {
console.log('done')
}
}
nextStep(0)
推荐阅读
- javascript - 使用 Webpack 作为构建工具的 SASS 多页站点
- python - 具有 3D 输入和 3D 输出的序列模型的 SHAP 解释器
- react-admin - React-admin:用户身份不会立即更新 Appbar 中的用户名
- c++ - 为什么“i”是未声明的标识符?(c++)
- postgresql - Postgres:在选择时将 JSONB 数据添加为现有 JSONB 数据中的新字段
- c - 制作指针数组时不兼容的函数指针类型
- java - 如何根据组合框的值重复代码多次?JSP Java
- coldfusion - 是否可以使用 onCFCRequest 或类似函数将数据从 cfc 写入调用方请求范围?
- spring - 我在春天看不到我的网页[春天]
- python - 我需要帮助嵌套这个矩阵列表(调试)