초보자는 여기에 있습니다..getJSON이 루프에서 작동하지 않습니다.
는 다음 코드
$.getJSON('http://uifaces.com/api/v1/random', function(uifaces){
var name=uifaces.username;
document.write(name)});
그것은 잘 실행을 가지고 있지만 내가 for 루프에 넣을 때마다 반복 다른 이름을 검색하기로되어 있지만,이 같은 일마다 출력합니다.
나는 몇 가지 조사를했고 두 가지 제안이있었습니다. 하나는 클로저를 포함하고 다른 하나는 대기열을 포함합니다. 하지만 둘 다 :
for (var i = 0; i < 5; i++) {
(function(i){
$myQueue.queue(function(next){
$.getJSON('http://uifaces.com/api/v1/random', function(uifaces){
var name=uifaces.username;
document.write(name)});
next();
});
})(i);
}
$myQueue.dequeue();
이 작품은 아닙니다. 그들은 단지 같은 이름을 출력합니다.
for(var i=0; i<5; i++){
(function(i){
$.getJSON('http://uifaces.com/api/v1/random', function(uifaces){
var name=uifaces.username;
document.write(name)
}
});
})(i);
}
나는이 문제를 해결하는 방법에 대한 다른 제안을 찾을 수 없습니다. 어떤 충고라도 크게 도움이 될 것입니다.
이 경우 클로저 나 큐가 필요하지 않습니다.'document.write (name);'을 실행하여 각 루프에서 이름을 지우는 것입니다. – Holt
각 호출마다 이름이 무작위로 지정되므로 여러 번 호출해야합니다. – user3236967
홀트, 응답 해 주셔서 감사합니다. 그렇다면 그 이름이 한 번만 출력됩니다. 여기에 루프가 5 번 반복되면 동일한 이름의 5 개가 나에게 제공됩니다. – user3236967