0
다른 함수가 반환 될 때까지 특정 함수가 실행되지 않도록 약속을 사용하려고합니다. 나는 많은 예제와 다른 문제 등을 살펴 봤는데 구문이 정확하다고 말할 수있는 한 내 .then(function())
은 실행되지 않으므로 뭔가 빠져 있어야합니다.jQuery Promise가 .then() 또는 .done()을 트리거하지 않습니다.
function previewMaster() {
var dfd = $.Deferred();
function prevAndTest() {
return true;
}
var doneYet = false;
var intvl = setInterval(function() {
if (doneYet === false) {
doneYet = prevAndTest();
//reassign doneYet until true
} else {
clearInterval(intvl);
dfd.resolve;
return dfd.promise();
}
}, 1000);
}
도 .then()
도 여기 .done()
일 :
var promise = previewMaster();
promise.then(function() {
alert("finished");
});
방법
previewMaster
이 약속 반환하지 않습니다 때문에
'dfd.resolve을,'함수 ("값이 그 약속이 무엇 때문에 약속을 해결하기 위해") dfd.resolve'사용 ...이다; 당신은'dfd.promise을 반환하는 경우' –
또한,()'완전히 잘못이다 - 당신은 previewMaster 함수에서 반환 할 필요는 setInterval을 –
@JaromandaX에없는 콜백 절대적으로 올바른 것입니다. Docs : https://api.jquery.com/deferred.resolve/ – YellowShark