setTimeout函数全部一起调用,因为将每个setTimeout同时分配给进程队列,在9s传递之后,它们被事件循环一个接一个地选取,但是由于所有函数同时完成,因此它们给出了相同的Date()输出,如果需要,您可以保留一个计数器,并将setTimeout设置为9 * counter seconds,这将解决您的问题,这是一个正在运行的示例
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);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句