2017-08-03 60 views
2

我需要的答案是想出一个特定的时间间隔。该代码是数据在特定时间间隔内传递

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()); 
} 

,其结果是Output

我的时间间隔是9秒,但在所有同第二个结果?如何在每个9秒内获得每个结果

+0

采取的setTimeout在你的功能。 –

+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); 
} 
+0

请解释成代码示例? –

+0

更新了代码 – marvel308

+0

谢谢亲爱的:) –

相关问题