2017-08-03 16 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秒である、しかし、すべて同じ秒で結果が?それぞれの結果をどのように取得するのですか?

+0

実行している例であり、出力として)彼らは同じ日に(与えたと同時に終了あなたの機能。 –

+0

ここでも同じアウトプットを出力します –

答えて

2

setTimeout関数はすべて同時に呼び出されます。なぜなら、9秒経過後にプロセス待ち行列に1つずつ、しかしすべてからでのsetTimeoutを取るにあなたがここにあなたの問題を解決するだろう9 *カウンタ秒とカウンターとのsetTimeoutを保つことができますしたい場合は

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

で更新されました –

関連する問題