Axios vs Superagent

eer*_*eam 8 ajax superagent axios

如果我使用AxiosSuperagent一个接一个地调用相同的api,我会在控制台日志中首先得到Superagent的响应,即如果我先调用一个而不是另一个,反之亦然.这是否意味着一个比另一个更快或完全是另一回事?

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)              
        });
  }
Run Code Online (Sandbox Code Playgroud)

Nat*_*ate 16

差异不太可能与客户的原始速度有关.两者都使用Node的HTTP库或浏览器的内置XMLHttpRequest.您观察到的最有可能的是与事件处理相关的时间上的细微差别.

我的决定基于其他因素,比如你更喜欢哪种API,以及库大小(对于浏览器端应用程序).

以下是Axios和SuperAgent的浏览器端测试案例:https://jsperf.com/axios-vs-superagent/ 这里是服务器端测试:https://gist.github.com/natesilva/24597d954f392b21467b83403756f121

对我来说,在这些测试中,Axios在浏览器中更快,SuperAgent在Node.js下更快.


小智 1

我真的不认为这真的是速度问题,嗯。我认为 Axios 是基于承诺的,而 Superagent 不是。它们都是异步的,但由于 axios 等待解析它得到的响应,因此它看起来比 superagent“慢”。

但我可能是错的。

  • 目前,SuperAgent 支持开箱即用的 Promises:https://visionmedia.github.io/superagent/#promise-and-generator-support (11认同)