XmlHttpRequest fonctionne via les rappels. Alors, comment puis-je retourner une valeur? J'ai essayé de définir une variable globale, mais cela ne semble pas fonctionner.Flux de contrôle avec XmlHttpRequest?
var response = null; // contains the most recent XmlHttpRequest response
// loads the info for this username on the page
function loadUsernameInfo(username) {
getUserInfo(username);
var profile = response;
if (profile) {
// do stuff
}
else {
indicateInvalidUsername(username);
}
}
getUserInfo()
ne peut pas renvoyer un résultat, en raison du rappel:
function getUserInfo(username) {
var request = createRequest();
request.onreadystatechange = userObjFromJSON;
var twitterURL = "http://twitter.com/users/show/" + escape(username) + ".json";
var url = "url.php?url=" + twitterURL;
request.open("GET", url, true);
request.send(null);
}
Le rappel:
function userObjFromJSON() {
if (this.readyState == 4) {
alert(this.responseText);
response = this.responseText;
}
}
Comment puis-je obtenir la réponse au loadUsernameInfo()
?
Vous aurez besoin d'une certaine façon de saisir la valeur de 'username' si vous allez l'utiliser dans' onLoadUsernameComplete' –