次のように、もう一方にネストされた2つの非同期関数があります。
//Async 1
document.addEventListener("click", function(event){
for (var i in event){
//Async 2
setTimeout(function(){
console.log(i);
}, 200*i);
}
});
私が望むのは、オブジェクトの各エントリ( i
)を印刷できるようにすることです。event
ただし、Firefox での出力は次のようになります。
MOZ_SOURCE_KEYBOARD
MOZ_SOURCE_KEYBOARD
MOZ_SOURCE_KEYBOARD
MOZ_SOURCE_KEYBOARD
..
Async 2console.log(i)
の外に移動すると、正しい結果が得られます。
type
target
currentTarget
eventPhase
bubbles
cancelable
..
i
内部async 2を読み取るときに正しく機能しないのはなぜですか? コードのAsync 2event
ブロック全体でも「生きている」べきではありませんか?