1
var linksList = [
"http://a.com",
"http://b.com",
"http://c.com",
]
for (var i=0; i<linksList.length; i++) {
setTimeout(function() {
console.log(linksList[i]);
}, 3000);
}
크롬 검사기에 붙여 넣는 이유는 무엇입니까? (완전히 임의의 숫자 인 것 같습니다.) ... 다음 기다리면 3 '정의되지 않은'콘솔이 반환됩니다. 오류왜이 자바 스크립트는 정의되지 않은 값을 반환합니까?
중첩 된 함수 내에서 생성되지 않았기 때문에 사용할 수 있다고 생각 했습니까? 흠. 감사. 나는 더 많이 추측해야 할 것입니다 – Tallboy
흠 ... 지금은 작동하지만 콘솔에 동시에 모든 것을 기록합니다. (최소한 현재에는 아무런 오류가 없습니다.) – Tallboy
@Tallboy 모든'setTimeout' 함수는 다음과 같습니다. 대략 동일한 시간에 설정되고 동일한 지연 ('3000ms')으로 콜백이 대략 동시에 호출됩니다. 콜백 호출간에 지연을 원한다면'setTimeout' 함수에 다른 지연을 지정하십시오. 예를 들어,'setTimeout (function() {}, 3000 * (i + 1))'로 콜백은'3000ms' 지연으로 호출됩니다. – Engineer