JQuery Deferreds를 하나씩 콜백 피라미드없이 차례대로 실행하는 방법이 있습니까?콜백 피라미드가없는 JQuery 체인 지연
는 지금은 이런 일을 할 필요가 :
$.Deferred(function(dfd) {
setTimeout(function() {
console.log('Foo');
dfd.resolve();
}, 1000);
})
.done(function() {
$.Deferred(function(dfd) {
console.log('Bar');
dfd.resolve();
}).done(function() {
console.log('done');
});
});
출력 :
$.Deferred(function(dfd) {
setTimeout(function() {
console.log('Foo');
dfd.resolve();
}, 1000);
})
.then($.Deferred(function(dfd) {
console.log('Bar');
dfd.resolve();
}))
.done(function() { console.log('done') });
: 나는 이런 식으로 뭔가를 할 수 있기를 원하는
을 수행 푸, 바, 원하지 않는 결과물 : Bar, Foo, done감사합니다.
참고 : JQuery와 1.8 이상에서이 유일한 작품. 그 전에, 당신은'.pipe()'를 사용할 필요가 있습니다. – MgSam
그리고 1.6/1.7 이전에는'.pipe()'가 작동하지 않았습니다. 명시되지 않은 한 jQuery 질문은 최신 버전을 참조한다고 가정합니다.이 경우이 답변은 정확하며 그로 표시되어야합니다. –
죄송합니다. 추가 테스트를 통해 작동하지 않는다고 판단 했으므로 표시를 취소했습니다. 첫 번째 이유는 JQuery 버전 이었지만 두 번째 이유는 누락 된'return' 키워드 때문이었습니다. – MgSam