JavaScript 문제에 대한 오해에 대한 약간의 문제가 있습니다.자바 스크립트 : 내부 함수에 의해 외부 함수의 변수가 변경되지 않았습니다.
는 I 코드의 조각이 - getStdOptions 내부 내부 함수 호출되지만 본질적
getStdOpts: function(tbl, filt) {
var vals = new Array();
this.srvs.getStdOptions(
{ tbl: tbl },
{
'ok': function(rsp) {
for (var i in rsp) {
vals.push({ value: rsp[i].id, text: rsp[i].descr });
}
}
}
);
return vals;
}
을 : 액세스 할 때 ('OK'기능 ...)를 발스 어레이에 새로운 값을 푸시 호출 외부에서 vals 배열이 비어 있습니다. 내부 함수 내에서 액세스 할 때 vals에는 예상대로 모든 요소가 포함됩니다.
정말이 문제에 관해 도움을 주시면 감사하겠습니다.
'getStdOptions'는 일부 비동기 작업을 수행 중일 수 있습니다. 그렇지 않으면 실제로 콜백을 전달할 이유가 없습니다. 나는. 'val'은'ok' 함수가 실행되기 전에 반환됩니다. 더 잘 돕기 위해'this.srvs.getStdOptions'가 무엇을하는지 알 것입니다. –
안녕하세요 펠릭스,'getStdOptions' 함수는 백 엔드 데이터 서비스를 호출하여 주어진 테이블'tbl'에서 옵션 목록을 검색합니다. 그리고 그 서비스의 응답 부분은 상태 _ok_와 옵션 목록이 될 것입니다. 아마도 서비스 검색 작업이 비동기적일 수 있다는 사실에 대해서는 생각하지 않았습니다. 나는 다시 코드를 가지고 놀고 내가 작동하는지 알릴 것이다. 당신의 도움을 주셔서 감사합니다! :) –