2014-03-29 3 views
3

이 함수의 결과를 반환 할 수 없습니다.자바 스크립트 함수에서 변수 반환

function get_duration() { 
    var a = ''; 
    $.ajax({ 
     url: "http://gdata.youtube.com/feeds/api/videos?q=3KMz3JqRByY&max-results=50& format=5,1,6", 
     dataType: "jsonp", 
     success: function (data) { 
      re2 = /seconds='(\d+)'/ig; 
      while (re.exec(data) != null) { 
       a = re2.exec(data); 
      } 
     } 
    }); 
    return a; 
} 
+0

'success' 콜백 내에서'return' 사용 –

+2

AJAX 호출이 비동기 적이라는 사실과 관련이 있습니다. 귀하의 질문도 백만 번 반복됩니다 (예 : [http] /stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call?lq=1). –

+0

아약스에서'async = false'를 사용하십시오. –

답변

1

당신은 아약스에서이 비동기입니다 , 이후 success 콜백 내부 return을 사용해야합니다. 이처럼

은 :

function get_duration() { 
    var a = ''; 
    $.ajax({ 
     url: "http://gdata.youtube.com/feeds/api/videos?q=3KMz3JqRByY&max-results=50& format=5,1,6", 
     dataType: "jsonp", 
     success: function (data) { 
      re2 = /seconds='(\d+)'/ig; 
      while (re.exec(data) != null) { 
       a = re2.exec(data); 
      } 
      return a; 
     } 
    }); 
} 

그러나,이 기능은 반환을 보장 할 수 없습니다. 콜백 함수와 같은 것을 사용해야 할 것이다.

+0

참고'get_duration()'은 여전히이 방법으로'undefined'를 리턴합니다. –

+0

그래, 고마워. 편집 했어. –

관련 문제