JavaScript循环: restore console after each iteration

标签 javascript node.js loops

我目前正在编写代码,当在 Node.js 上运行时,仅记录下面对象的每个值,每次迭代延迟一秒,并与字符串“您现在正在观看”连接

const episodes = [
  { id: 's06e01', title: 'Pilot' },
  { id: 's06e02', title: 'Top Banana' },
  { id: 's06e03', title: 'Charity Drive' },
  { id: 's06e04', title: 'Visiting Ours' },
  { id: 's06e05', title: 'My Mother, the Car' },
  { id: 's06e06', title: 'In God We Trust' },
  { id: 's06e07', title: 'Storming the castle' },
  { id: 's06e08', title: 'Pier Pressure' },
  { id: 's06e09', title: 'Public Relations' },
];
    const finaleEpisode = { id: 's06e10', title: 'Bringing Up Buster' };

const addToPlaylist = episodes.concat(finaleEpisode)

下面是我设法做到这一点的地方,但我知道有一种更简单的方法可以做到这一点,我打算使用循环,但无法找到在每次迭代后恢复控制台日志的方法。因此我使用了异步JS来延迟打印和清除功能

console.log("You are Now Watching "  + addToPlaylist[0].id + ' ' + addToPlaylist[0].title);


setTimeout(function(){console.log('\033c'); }, 3000);

setTimeout(function(){console.log("You are Now Watching "  + addToPlaylist[1].id + ' ' + addToPlaylist[1].title); }, 4000);

setTimeout(function(){console.log('\033c'); }, 5000);

setTimeout(function(){console.log("You are Now Watching "  + addToPlaylist[2].id + ' ' + addToPlaylist[2].title); }, 6000);

setTimeout(function(){console.log('\033c'); }, 7000);

setTimeout(function(){console.log("You are Now Watching "  + addToPlaylist[3].id + ' ' + addToPlaylist[3].title); }, 8000);

setTimeout(function(){console.log('\033c'); }, 9000);

setTimeout(function(){console.log("You are Now Watching "  + addToPlaylist[4].id + ' ' + addToPlaylist[4].title); }, 10000);

setTimeout(function(){console.log('\033c'); }, 11000);

setTimeout(function(){console.log("You are Now Watching "  + addToPlaylist[5].id + ' ' + addToPlaylist[5].title); }, 12000);

setTimeout(function(){console.log('\033c'); }, 13000);

setTimeout(function(){console.log("You are Now Watching "  + addToPlaylist[6].id + ' ' + addToPlaylist[6].title); }, 14000);

最佳答案

function doTask(num, max) {
    console.log("do whatever you want with " + num);
    if(num < max) {
        window.setTimeout(function() {
            doTask(++num, max);
        }, 2000);
    }
}

好的,这是递归的。不要使用大于数百万的最大值。

关于JavaScript循环: restore console after each iteration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46979810/

相关文章:

python - 获取一个 Try 语句循环直到获得正确的值

javascript - 在 jQuery 中发出 Ajax 请求时,事件仅触发一次

r - 在 AWS 上使用 Rserve 在 Node.js 和 R 之间进行跨平台通信时出错。错误:connect ETIMEDOUT

javascript - node.js http.request 事件流 - 我的 END 事件去哪儿了?

node.js - Raspberry Pi 运行 Meteor 包会引发调用堆栈异常

java - arraylist 加载给了我有趣的输出

javascript - 将 $http 响应分配给 $scope 时,AngularJS View 不会更新

javascript - 来自 Web API 的空白请求、状态和错误

javascript - 如何制作可点击的过渡条形图以在 d3 v4 中显示 3 个图形?

php - PHP 中的 FOR 循环性能