다음 오류를 생성하는 코드를 생성했습니다 : Uncaught TypeError: Cannot read property 'done' of undefined
. 여기에 무슨 일이 일어나고 있는지 이해할 것 같아요. def()
은 제한 시간이 만료되고 곧바로 실행하려고 시도 할 때까지 지연되지 않습니다. 그러나 이것이 작동하지 않는다면 이해할 수없는 것은 왜 지연이 전혀 작동하지 않는 것입니까? .done
도은 아직 해결되지 않았을 수 있다는 점을 감안할 때 코드가 앞으로/앞으로 연기된다는 것을 알고 있습니까? 구문을 사용하면 효과가 있습니다. 내 머리 부분을 들여다보고 있습니다.Jquery deferred.done이 함수의 결과 유형을 인식하지 못합니다.
멍청하게 말하자면 .done은 그냥 닫고 기다려야합니다. 모든 객체의 메소드가 될 수 있고 지연되지 않아도 해결 될 때까지 기다릴 수 있지만 .done
을 입력하면 왜 필요하지 않습니까?). 아니면 그런 식으로 작동합니까,하지만 난 그냥 제대로 사용하는 방법을 모르겠어요?
명시 적으로이 내 혼란을 해결하지 않으면 jquery deferred의 기존 가이드/게시물을 참조하지 마시기 바랍니다.
감사합니다.
jsfiddle here
function def() {
d = new $.Deferred;
setTimeout(function(){
d.resolve();
return d;
},1000)
}
def().done(function(){
console.log('test');
});
내가 컴퓨터를 작동시켜 응답이 있는지 확인하기 위해 내가 만든 실수를 깨달았다 고 생각합니까? 너무 자주 그것이 명확성을 가져 오는 그것에서 떨어져 나가고 있습니다. 확인 및 추가 수정을 주셔서 감사합니다. 이런 질문을하는 것은 당혹 스럽습니다. 나는 그것을 직접 디버깅 하겠지만, 단지 (프론트 엔드와) 콘솔 출력만으로 많은 정보를 얻을 수 있으며 자바 스크립트 수준에서만 가능하다. 나는이 방법으로 누군가가 어떻게 작동하는지 알지 못하지만 최소한 자유 다. 상업적 개발 환경을 위해 현금을 불어 넣을 입장이 아니다. – SteveC
@SteveC - 좋은 디버거 중 하나를 사용할 수 없습니까? 브라우저 개발을 위해 항상 Chrome 디버거를 사용하고 node.js 개발을 위해 노드 검사기를 사용합니다. 어쩌면 일부 개발 환경의 모든 종소리와 호루라기는 아니지만 실제 디버거는 완전히 무료이며 시간을 절약 할 수 있습니다. – jfriend00
나는 Aptana를 사용한다. 파이어 폭스 (- 내부 서버, 그게 무슨 뜻이든)와 함께 작동하는 것 같습니다. FirePHP가 작동하지 않습니다. 디버그에서 내 앱을 실행하려고하면 '소켓 연결 오류'가 발생합니다. Aptana가 반쯤 끝났을 때 어떻게 인기가 있을지 이해할 수 없습니다.그들은 그냥 거기 던져 버린 것 같아요. 영광스러운 텍스트 편집자가 아닌 다른 일을하는 방법을 추측하려고합니다. – SteveC