Sto provando a chiamare una funzione che contiene il codice jQuery. Voglio che questa funzione restituisca i risultati dell'istruzione jQuery. Non funziona, e sto cercando di capire perché.
function showGetResult (name) {
var scriptURL = "somefile.php?name=" + name;
return $.get(scriptURL, {}, function(data) { return data; });
}
alert (showGetResult("John"));
L'avviso visualizza "[object XMLHttpRequest]
". Tuttavia, se eseguo l'istruzione jQuery da sola, al di fuori di una funzione, funziona bene ->$.get(scriptURL, {}, function(data) { alert(data); })
Vorrei poter riutilizzare questo codice inserendolo all'interno di una funzione che restituisce $.get
dati. Che errore fondamentale sto facendo qui?
Grazie per l'approfondita interruzione. La combinazione del passaggio a sincrono e l'utilizzo di una variabile in ambito esterno per passare i dati, ha risolto il mio problema. – Kai
Va bene, ma tieni presente che passando a sincrono, stai potenzialmente bloccando il browser mentre aspetti la risposta. Probabilmente è un errore, a meno che tu non sappia che il tuo utente sarà sempre connesso a una velocità incredibile e il tuo server non sarà mai sommerso.Inoltre, contrariamente a ciò che riguarda AJAX, è inteso a rendere le applicazioni web più reattive, ma questo cambiamento potrebbe renderla molto meno reattiva. –
Sono d'accordo con @JacobM che è meglio usare asincrono se possibile e gestire le tue azioni nel callback. – tvanfosson