2017-02-15 1 views
-2

Ich habe eine Situation, in der ich einen Wert von Ajax-Aufruf erhalten muss, und dann diesen Wert an eine Rückruffunktion übergeben. Genau wie folgt aus:Übergeben Sie Ausgabe als Eingabeargument für den Rückruf

function getValue(callback){ 
    var val = getfromajax(); 
    //need to return value and then execute the callback here 
    return val; 
    callback(); 
} 

var myval = getValue(function(){ 
    alert(myvalue) 
}) 

Im Beispiel oben in der functon showValue Ich brauche getValue anrufen und den zurückgegebenen Wert verwenden und weitergeben Funktion Rückruf (was es Warnungen).

Gibt es eine Möglichkeit, das zu tun?

+1

Ist 'getfromajax()' * asynchron *, wie der Name schon sagt? – David

+0

ja eigentlich ist es ajax() -Funktion. – Lamar

+1

Sie lesen am besten: [Wie gebe ich die Antwort von einem asynchronen Anruf zurück?] (Http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call). Sie haben bereits ein Problem mit 'getfromajax()' – charlietfl

Antwort

0

Sie würden es nur auf die Funktion als

function getValue(callback){ 
    var val = getfromajax(); 

    callback(val); 
} 

var myval = getValue(function(myvalue){ 
    alert(myvalue) 
}); 

Hinweis Argument Rückruf passieren, dass dies nicht funktioniert, wenn getfromajax asynchron ist.

+0

Also muss getValue die Anweisung zurückgeben, was macht" var myval "eigentlich? – Lamar

+0

Eigentlich macht das, danke! Übrigens, getfromajax ist ein Alias ​​für den Aufruf von $ .ajax(), und ich weise val im Bereich .done() zu. – Lamar

Verwandte Themen