Sobes.tech
Junior

Nommez les outils que vous avez utilisés pour écrire des appels asynchrones.

sobes.tech IA

Réponse de l'IA

JavaScript propose plusieurs outils pour travailler avec des appels asynchrones:

  • Fonctions Callback: Approche classique, où une fonction est passée en argument à une autre fonction et s'exécute après la fin de l'opération asynchrone.

  • Promises: Objets représentant une valeur future ou une erreur d'une opération asynchrone. Simplifient la chaîne d'appels asynchrones et la gestion des erreurs.

    // Exemple d'utilisation des promises
    fetch('/api/data')
      .then(response => response.json()) // Traitement de la réponse réussie
      .then(data => console.log(data)) // Travail avec les données reçues
      .catch(error => console.error('Erreur:', error)); // Gestion des erreurs
    
  • Async/await: Sucres syntaxiques sur les promises, permettant d'écrire du code asynchrone dans un style plus synchrone, ce qui améliore la lisibilité.

    // Exemple d'utilisation d'async/await
    async function fetchData() {
      try {
        const response = await fetch('/api/data'); // Attente de la fin de fetch
        const data = await response.json(); // Attente du parsing JSON
        console.log(data);
      } catch (error) {
        console.error('Erreur:', error);
      }
    }
    fetchData();
    
  • XMLHttpRequest (XHR): API de base pour effectuer des requêtes HTTP dans le navigateur. Plus bas niveau comparé à fetch et nécessite plus de code pour la gestion.

    // Exemple d'utilisation de XMLHttpRequest
    const xhr = new XMLHttpRequest();
    xhr.open('GET', '/api/data', true); // Requête asynchrone
    xhr.onload = function() {
      if (xhr.status >= 200 && xhr.status < 300) {
        console.log(JSON.parse(xhr.responseText));
      } else {
        console.error('Erreur:', xhr.statusText);
      }
    };
    xhr.onerror = function() {
      console.error('Erreur réseau');
    };
    xhr.send();
    
  • Fetch API: API moderne et plus flexible pour effectuer des requêtes HTTP, basée sur les promises.

    // Exemple d'utilisation de Fetch API
    fetch('/api/data')
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error('Erreur:', error));
    
  • Bibliothèques pour travailler avec des requêtes HTTP: Par exemple, axios (pour navigateur et Node.js) ou jQuery.ajax(). Elles simplifient et standardisent l'exécution des requêtes asynchrones.

    // Exemple d'utilisation d'Axios
    axios.get('/api/data')
      .then(response => console.log(response.data))
      .catch(error => console.error('Erreur:', error));
    

Le choix de l'outil dépend de la spécificité de la tâche et du contexte du projet. Fetch et async/await sont des approches modernes et recommandées pour la plupart des cas.