【发布时间】:2020-08-24 14:43:55
【问题描述】:
ForEach console.log 的速度非常快。但我需要它每 8 秒等待一次 console.log 设置中的下一个项目。我尝试了 setTimeout,但它似乎没有在给定的特定 ms 处显示 console.log。
const completedIds = [];
//Dom mutation observer
const observeChat = new MutationObserver(function(mutationsList) {
for (let mutation of mutationsList) {
if (mutation.addedNodes.length) {
for (i = 0; i < mutation.addedNodes.length; i++) {
mutation.addedNodes[i].firstChild.naturalWidth < 51 ? pm(mutation.addedNodes[i].firstChild.src.slice(-48, -12)) : false
}
}
}
});
observeChat.observe(document.querySelector('.accounts-container__list'), {attributes: true, childList: true, subtree: false});
// Pm function
pm = ids => {
observeChat.disconnect();
if (!completedIds.includes(ids)) {
const img = new Set().add(ids).forEach(function(id, index) {
setTimeout(function() { // Not working. Does NOT print in console every 8sec
console.log(id)
}, index * 8000)
})
}
observeChat.observe(document.querySelector('.accounts-container__list'), {attributes: true, childList: true, subtree: false});
}
【问题讨论】:
-
您没有将其设置为记录每 8秒,而是在 8秒之后记录。
-
我的意思是。我需要它每 8 秒等待一次,然后才能移动到集合中的下一个项目。
-
实际发生了什么?超时/间隔也不准确。
标签: javascript loops time foreach delay