【发布时间】:2017-10-27 16:40:40
【问题描述】:
我目前正在编写在 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);
【问题讨论】:
-
我不清楚这个练习的目的是什么——听起来像是一个 X/Y 问题,或者可能是 stackoverflow.com/questions/24293376/… 的副本
-
“恢复控制台日志”是什么意思?
标签: javascript node.js loops