잃어 버렸습니다. 루프 변수를 AJAX .done() 호출에 어떻게 전달할 수 있습니까?
for (var i in obj) {
$.ajax(/script/).done(function(data){ console.log(data); });
}
분명히, 내가 매일 반복에 객체 obj
에서 맨 마지막 키를 반환 console.log(i+' '+data)
내가 작업을 수행하는 경우. 문서화가 실패합니다.
잃어 버렸습니다. 루프 변수를 AJAX .done() 호출에 어떻게 전달할 수 있습니까?
for (var i in obj) {
$.ajax(/script/).done(function(data){ console.log(data); });
}
분명히, 내가 매일 반복에 객체 obj
에서 맨 마지막 키를 반환 console.log(i+' '+data)
내가 작업을 수행하는 경우. 문서화가 실패합니다.
당신은이 같은 루프의 각 호출에 대해 i
의 값을 캡처 (자체 실행 기능을 통해) 클로저를 사용할 수 있습니다
for (var i in obj) {
(function(index) {
// you can use the variable "index" here instead of i
$.ajax(/script/).done(function(data){ console.log(data); });
})(i);
}
당신은 단지 객체에 사용자 정의 필드를 만들 수 있습니다 당신을 $ .ajax()로 보내면 promise 콜백이 만들어지면 "this"의 필드가됩니다. 예를 들어
:
$.ajax( { url: " https://localhost/whatever.php ", method: "POST", data: JSON.stringify(object), custom: i // creating a custom field named "custom" }).done(function(data, textStatus, jqXHR) { var index = this.custom; });
5 년이 지난 후에도 나는이 질문을 던지는 것을 잊어 버렸습니다. ;) – philtune
최근 프로젝트에서이 작업을 수행하는 방법을 알아야했습니다. 그래서, 내가 그것을 알아 냈을 때, 나는 또한 그들이 원하는 정보를 다른 사람들에게 전달하려고 시도했다. –
이것은 jquery ajax 비동기 실행 시점에서 더 낫다. 콜백이있을 때 명확하게 의도 된 항목/객체 참조를 제공한다. 후자를 실행했다. –
나는'success'을 사용할 수 파악,하지만 난 이해가 지금은 사용되지 않습니다. – philtune