javascript - 带有随机计时器延迟的Javascript setTimeout按顺序显示数组项
问题描述
我编写了以下代码,该代码使用随机计时器延迟显示数组的每个项目。
const letters = ['H', 'e', 'l', 'l','o'];
const typeLetters = _ => {
letters.forEach((letter) => {
let ranNum = Math.ceil(Math.random() * 1000);
setTimeout(function(ranNum) {
lettersCon.textContent += letter;
}, ranNum * 1);
})
}
我遇到的问题是数组项没有按顺序显示,应该显示 Hello。我相信这是由于事件循环的工作方式。
如何在保持输出有序的同时使用随机定时器延迟。
解决方案
这样的事情呢?
const letters = ['H', 'e', 'l', 'l','o'];
const typeLetters = _ => {
let total= 0;
letters.forEach((letter) => {
let ranNum = Math.ceil(Math.random() * 1000);
total+=ranNum;
setTimeout(function(ranNum) {
lettersCon.textContent += letter;
}, total);
})
}
推荐阅读
- r - R 两列中的完全匹配字符串
- angular - 如何将服务器端打字稿文件添加到 Angular 7 项目并自动构建?
- solr - 找不到类“tx_solr_indexqueue_PageIndexer”
- python - 只能将部分数据插入到csv中
- php - 我如何将( id ) url 插入数据库 Laravel
- python-2.7 - Numpy 和逆矩阵 - 只做一个重塑指令的方法
- python - 如何卸载 TensorFlow 2.0.0-alpha0?
- c# - 如何在 PHP 中使用字典类型数组
- c# - 如何使用 .net 内核发布数据并从 Unix 套接字获取响应
- ios - 5分钟后如何在后台调用api?