我需要的答案是提出一个特定的间隔。代码是
const myMap = new Map([
[ "A", 1 ],
[ "B", 2 ],
[ "c", 3 ],
[ "d", 4 ],
[ "e", 5 ],
[ "f", 6 ],
[ "g", 7 ]
]);
myMap.forEach( (val, key) =>
Meteor.setTimeout(test(),9000)
);
function test(){
console.log("jajjjaja");
console.log(Date());
}
我的时间间隔是9秒,但结果是所有相同的秒?如何在每9秒中获得每个结果
答案 0 :(得分:2)
setTimeout函数全部一起被调用,因为每个setTimeout同时被赋予进程队列,在9s传递后它们被事件循环逐个挑选,但由于它们全部同时完成它们给出了相同的日期()作为输出,如果你想要你可以保持一个计数器和setTimeout为9 *计数器秒,这将解决你的问题这里是一个运行的例子
const myMap = new Map([
[ "A", 1 ],
[ "B", 2 ],
[ "c", 3 ],
[ "d", 4 ],
[ "e", 5 ],
[ "f", 6 ],
[ "g", 7 ]
]);
myMap.forEach(function(key, value){
test(key);
});
function test(key){
setTimeout(function(){
console.log("jajjjaja");
console.log(Date());
},9000*key);
}