Partage
  • Partager sur Facebook
  • Partager sur Twitter

undefined, ajax

Sujet résolu
18 juillet 2019 à 12:48:30

bonjour, j'ai un soucis quand j'appel ma fonction getPosts() dans ma console j'ai undefined en retour :/

<script>

var get = function(url,success){
	var xhr = new window.XMLHttpRequest();
	
	xhr.readystatechange = function(){
		if(xhr.readyState === 4){
			success(xhr.responseText)
		}
	}
	
	xhr.open('GET',url,true);
	xhr.send();
}

var getPosts = function(){
	get('https://jsonplaceholder.typicode.com/users',function(response){
		console.log(response)
	});
}

console.log(getPosts());

</script>

merci d'avance

  • Partager sur Facebook
  • Partager sur Twitter
18 juillet 2019 à 14:14:52

getPosts ne possédant aucune instruction return, elle ne retourne rien. C'est normal avec un appel asynchrone (ici get), tu ne sais pas quand get va se terminer. Les appels asynchrones suivent une logique différente des appels synchrones.

Au passage, fetch est une API standard qui permettrait d'écrire tes appels bien plus simplement, et avec les mot-clefs async/await tu pourrais facilement écrire ce que tu cherches à faire "comme si c'était un appel synchrone".

-
Edité par Genroa 18 juillet 2019 à 14:15:25

  • Partager sur Facebook
  • Partager sur Twitter
/!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\