2017-09-15 4 views
0

Ich rufe die Funktion hierjquery Funktion zurückkehrt ‚undefined‘

var url = 'https://gfycat.com/DigitalComfortableFrigatebird'; 
var src = getvideo(url); 

Dies ist die Funktion, die die Videoquelle von einem bestimmten Link extrahiert.

function getvideo(url) { 
    var link; 
    $.ajax({ 
     url: url, 
     success: function(data) { 
      var html = $.parseHTML(data); 
      var vid = $(html).find("video"); 
      var len = vid.length; 

      if (len > 0) { 
       link = vid.find("#webmSource").attr('src'); 
       console.log(link); 

      } else { 
       console.log("No video found"); 
      } 

     } 
    }); 
return link;  
} 

, während die Funktion arbeitet, ist das Link-Variable 'undefined' Aufenthalte außerhalb des $.ajax({}) Anruf

+0

Haben Sie versucht, die 'return' innerhalb der' success: 'zu setzen? – NewToJS

+0

@NewToJS das wird nicht funktionieren. Überprüfen Sie den doppelten Link. –

+0

ja ich habe, bleibt noch undefiniert –

Antwort

0
$.ajax({ 
     url: url, 
     success: function(data) { 
      var html = $.parseHTML(data); 
      var vid = $(html).find("video"); 
      var len = vid.length; 

      if (len > 0) { 
       link = vid.find("#webmSource").attr('src'); 
       console.log(link); 

      } else { 
       console.log("No video found"); 
      } 

     } 
    }); 

eine asynchrone Funktion ist

return link; 

würde nicht warten, bis es zu beenden und einen undefinierten Wert zurückgeben