내 코드는 다음과 같습니다.
function example() {
var post = object.get("owner");
post.fetch({
success: function(post) {
window.titles = post.get("username");
console.log(window.titles);
}
});
console.log(window.titles);
}
첫 번째 로그가 성공적으로 작동합니다. 메서드 외부에서 두 번째 로그는 정의되지 않은 것으로 인쇄됩니다. 왜?
외부 기능에서 작동하지만 비동기 호출에는 시간이 걸리기 때문에 즉시 작동하지 않습니다. 그것이 JS의 본질입니다.
가장 쉬운 방법은 비동기 함수의 결과에 직접 의존하는 모든 코드를 다른 함수로 이동 한 다음 성공 콜백 내에서 실행하는 것입니다.
이 같은:
function example() {
var post = object.get("owner");
post.fetch({
success: function(post) {
window.titles = post.get("username");
otherImportantCode(); // call the remaining code from here
}
});
console.log(window.titles); // won't work here
}
function otherImportantCode() {
console.log(window.titles); // see, it works here, outside the example function
// ... the rest of the code depending on window.titles
}
이러한 문제를보다 고급 처리 할 준비가되면 약속 및 이벤트에 대해 알아보십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다