항목 이름과 함께 콘솔 메시지를 표시하는 간단한 기능이 있습니다. 간단한 것 :for 루프 지연 기능이 있습니다
for(var i =0; i< array.length; i++)
child(array[i]);
var child = function(itemname){
console.log(itemname);
}
여기서 배열의 길이는 동적이며 포함 된 값도 마찬가지입니다. 이제 하위 함수 내부에 애니메이션을 추가하고 for 루프가 다시 호출하기 전에 확실히 끝내기를 원합니다.
나는 jQuery Deferred를 사용하는 방법을 알고 있고 다른 것을 끝낸 후에 하나의 함수를 호출 할 수 있지만 여기서는 for 루프 내에서 호출하는 방법을 모른다. 그게 여기에서 사용할 올바른 선택인지 확신 할 수 없습니다. 그럼, 내가 원하는 것은 내가 모든 증가와 함께, 자식 기능까지 .... 자식 함수가 완료 될 때까지 기다린 후 자식 함수가 다시 호출해야이라고하며 루프됩니다, 그래서
for(var i =0; i< array.length; i++) //for example 3 times
{
child(i) //call child and pass the the value of i
wait till child function completes
}
입니다 조건이 충족됩니다.
$ .when.apply 기능으로 몇 가지 솔루션을 찾았지만 사용법을 알 수 없습니다. 모든 문서, 샘플, 참조, '읽기'문서가 도움이 될 것입니다!
편집 : 애니메이션 예를 사용해서는 안됩니다. 내 잘못이야. 자식 함수가 ajax 호출을한다고 가정합니다. 자, 이제 자식 함수 번을 번 호출하고 반복 할 때마다 ajax 호출을 완료하기 위해 루프가 대기하도록하고 싶습니다. 그것은 한 번 이상 호출하고 싶은 함수와 같습니다. 연결이 없습니다.
이미 완료를 기다리지 않습니까? 내가 아는 바로는 코드의 실행이 선형이어야한다는 것입니다. in 문은 순서대로 실행되며 각 문은 이전 문이 실행될 때까지 대기합니다. – Zero
jQuery가 자식 함수에 대한 비동기 호출을 작성한 다음 for 루프는 자식 함수 내부의 애니메이션이 완료 될 때까지 기다릴 필요가 없기 때문에 추측하지는 않습니다. 자식 함수 안에 AJAX 호출이 있고이 자식 함수를 10 번 호출하고 for 루프가 매시간 기다려서 호출을 끝내고 자식 함수를 다시 호출하기를 원한다고 가정합니다. 나는 이해가 되니? – sandiejat