어딘가에 내 코드에서Deferred()가 동 기적으로 실행되도록 강제하는 방법이 있습니까? 이 거기에 코드에서 다른
function getMyDeferred() {
var deferred = $.Deferred();
$.ajax(url, {
success: function(data) {
deferred.resolve(data);
}
});
return deferred;
}
, 나는이 방법을 접근하고, 이연 객체를 얻고있다. 지연이 완료 될 때까지 현재 행에서 대기하도록 강제 할 수있는 방법이 있습니까? 이것이 아마도 약속의 철학과 연기의 철학에 위배된다는 것을 알지만, 그것을 할 수 있습니까? 이런 식으로 뭔가 :
var deferred = getMyDeferred();
// do something here to ensure we do not proceed to the
// next step until deferred has been resolved
nextStep();
대신 동기식 아약스를 사용 하시겠습니까? Ofc는 나쁜 습관이고 권장 사항은 아니지만 그것이 원하는 것이라면 .. –
Fabricio는 모든 의도와 목적을 위해 첫 번째 코드 블록에 대해 아무 것도 변경할 권한이 없다고 가정합니다. 내가 가진 것은 둘째입니다. 내가 실제로하고있는 일은 단위 테스트이므로 응답을 기다리기 전에 응답을 기다릴 필요가 있습니다. – SoaperGEM
아, 알겠습니다. 대부분의 단위 테스트 프레임 워크는 비동기 테스트를 허용합니다. –