나는이 javascript
줄에 간헐적 인 오류를 조사하고는이 변수 할당이 오류를 던지는 이유는 무엇입니까?
parentWindowState = window.opener && window.opener.ACME && window.opener.ACME.state
당신은 함수의 나머지 부분을보고 싶다면, 그 같다 :
_doStuff: function() {
var someVar = '',
parentWindowState = window.opener && window.opener.ACME && window.opener.ACME.state,
deferred = Q.defer();
if (parentWindowState && parentWindowState.getItem('...')) {
//lots of code
} else {
deferred.resolve();
}
return deferred.promise;
}
사용자는이 오류
를 받고보고있다Error at _doStuff (https://acme/anvils/yoloeditor/main_20160531050717.js:456321:13) at Anonymous function (https://acme/anvils/yoloeditor/main_20160531050717.js:111202:37) at _fulfilled (https://acme/anvils/yoloeditor/main_20160531050717.js:29048:13) at Anonymous function (https://acme/anvils/yoloeditor/main_20160531050717.js:29078:13) at promise.promiseDispatch (https://...
디버깅 및 변수 설정을 통해이 오류를 재현하려고 시도했습니다. opener
, ACME
및 state
~ null
또는 undefined
이지만 코드는 오류를 발생시키지 않습니다. 실제로 null/undefined 값을 처리하기로되어 있습니다.
내가 할 수있는 유일한 얻을 강제
throw new Error("Boom");
과 같은 오류를 던지는하여이 같은 오류 그래서 내 질문이 줄은 오류가 발생 할 수 어떤 상황입니까?
편집 : Chrome으로 테스트하는 동안이 오류를 재현하려고했습니다. ACME가 정의되지 않은 경우 Internet Explorer에서 오류가 발생한다는 것을 알았습니다.
오류 메시지는 무엇을 말합니까? – Quentin
이 오류는'promise.promiseDispatch'라고하고,이 줄에서는'deferred = Q.defer()'를 논리적으로 쓰고 있습니다.이 명령은이 오류를 발생시키는 명령입니다. –
@chsdk 여기에 서서히 미안해하지만, 나는 당신의 요점을 얻지 못한다. 완전한 대답으로 설명해 주시겠습니까? – yannicuLar