function getPriceNumber(subprice) { var price = 0; $.exec_json('nproduct.getPriceNumber', {'price': subprice}, function(obj){ var price = obj.price; }); return price; }
위와같은 코드가 있습니다.
피라미터로 subprice 로 받는 값은 숫자값(25000)입니다.
그래서 nproduct모듈의 getPriceNumber 라는 항목에서 obj값을 내려받았는데, 이 obj.price(가격정보)를 return 해주고 싶은데 이 값을 return 으로 이메서드를 실행한 곳에 전달할 수 있는 방법있나요?
exec_json이 아마 비동기로 실행이 되어 정석상으론 불가능할겁니다.
jQuery.ajax에서 동기적으로 실행되게끔 함수가 있던데 해당함수를 사용하면 아마 가능할겁니다. (전 안해봐서 정확하게는 모릅니다 ㅠㅠ)
getPriceNumber(subprice, anon_func) {
..
.
//서버에서 값을 가져오기에 성공하였을 때..
anon_func();
}
!function() {
getPriceNumber(subprice, function() {
alert();
});
}();
이런식으로 익명 함수를 넘겨서 이벤트를 처리하거나
아니면 ES6을 사용한다면
http://blog.kichul.co.kr/2017-04-10-es6-generator/
처럼 promise then 문법을 사용하시면 됩니다.
P.S. 일부 브라우저에선 ES6을 아직 지원하지 않습니다.