web-dev-qa-db-fra.com

Axios vs Superagent

Si j'utilise Axios et Superagent pour faire un appel au même api l'un après l'autre, je reçois la réponse de Superagent en premier dans les journaux de la console dans les deux cas, c'est-à-dire si j'en appelle un d'abord que l'autre et vice versa. Est-ce à dire que l'un est plus rapide que l'autre ou est-ce autre chose entièrement?

getUser() {

  axios.get('/api/getuser')
    .then((res) => {
      console.log(err,res)          
    })
    .catch((err,res) => {
      console.log(err,res)          
    })

    request
        .get('api/getuser')
        .end((err, res) => {
          console.log(err,res)              
        });
  }
8
xtabbas

Il est peu probable que la différence soit liée à la vitesse brute du client. Les deux utilisent la bibliothèque HTTP de Node ou le XMLHttpRequest intégré au navigateur. Ce que vous avez probablement observé, ce sont de légères différences de synchronisation liées à la gestion des événements.

Je baserais ma décision sur d'autres facteurs, comme l'API que vous préférez et la taille de la bibliothèque (pour une application côté navigateur).

Voici un cas de test côté navigateur pour Axios et SuperAgent: https://jsperf.com/axios-vs-superagent/ et voici un test côté serveur: https: // Gist .github.com/natesilva/24597d954f392b21467b83403756f121

Pour moi, sur ces tests, Axios est plus rapide dans le navigateur et SuperAgent est plus rapide sous Node.js .

16
Nate

Je ne pense pas vraiment que ce soit vraiment de la vitesse, enfin en quelque sorte. Je pense que c'est qu'Axios est basé sur la promesse et que Superagent ne l'est pas. Ils sont tous deux asynchrones mais comme axios attend de résoudre la réponse qu'il obtient, il apparaît "plus lent" que le super-agent.

Je pourrais toutefois avoir tord.

1
thomcchester