약속을 통해 객체를 반환하려고합니다. 다른 함수를 실행하기 전에 하나의 비동기 함수가 완전히 완료되었는지 확인하고 있습니다.Jquery deferred - 이전 함수가 완료되기 전에 함수 호출을 연기하십시오.
$.when(firstFunction()).done(secondFunction());
이 무엇인가요?
약속을 통해 객체를 반환하려고합니다. 다른 함수를 실행하기 전에 하나의 비동기 함수가 완전히 완료되었는지 확인하고 있습니다.Jquery deferred - 이전 함수가 완료되기 전에 함수 호출을 연기하십시오.
$.when(firstFunction()).done(secondFunction());
이 무엇인가요?
예, 일반 함수가 지연된 객체를 반환하지 않기 때문에 지연 객체를 직접 작성해야합니다.
var dfd = new $.Deferred;
dfd.done(secondFunction);
firstFunction();
은 ... 후 적절한 시점에서 firstFunction()
해결 dfd
(dfd.resolve()
를 통해)가 있습니다.
function firstFunction() {
$.get('some/file.txt').done(function() { dfd.resolve(); });
}
+1하지만,'firstFunction'가 Deferred를 만들고 돌려 주면 더 직관적 일 것입니다. 그래서'firstFunction(). done (secondFunction) '으로 호출 될 수 있습니다. –
@MartinJespersen - 좋아요. 연쇄 패턴. – Utkanos
를 그리고 무엇을 그 비동기 기능이 더 중요한 그들이 반환 할 것을 포함하거나 않습니다
firstFunction
는 AJAX 요청을 포함한다면, 말하자면, 그것은 다음과 같을 수 있는가? – adeneo