XETOWN

물어보기

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 으로 이메서드를 실행한 곳에 전달할 수 있는 방법있나요?

  • ?
    후하니 2017.06.15 18:55:13

    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을 아직 지원하지 않습니다.

  • profile
    람보 2017.06.15 20:22:31
    답변감사합니닷!

    다른방법으로 처리했습니다.
    https://github.com/bjrambo/nurigo/commit/90a091ca3ce8aa93f402945d837b77e52f97c0d5

서버에 요청 중입니다. 잠시만 기다려 주십시오...