最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Asyncawait vs那么哪个性能最好?

IT培训 admin 3浏览 0评论

Async / await vs那么哪个性能最好?

我在JavaScript中有一个简单的代码,它在API中执行请求并返回响应,这很简单。但在这种情况下,我会有成千上万的请求。那么,哪一个代码选项会表现得更好,以及为什么。这些天哪一个被推荐为好的实践?

第一个选项是使用.then来解析promises,第二个选项是使用async / await。

在我的测试中,两个选项具有非常相似的结果,没有显着差异,但我不确定规模。

// Using then
doSomething(payload) {
  const url = 'https://link-here/consultas';
  return this.axios.get(url, {
    params: {
      token: payload.token,
      chave: payload.chave,
    },
   }).then(resp => resp.data);
}

// Using Async / await
async doSomething(payload) {
   const url = 'https://link-here/consultas';
   const resp = await this.axios.get(url, {
   params: {
     token: payload.token,
     chave: payload.chave,
    },
 });
 return resp.data;
}

任何解释都很有价值。

回答如下:

await只是.then()的内部版本(基本上做同样的事情)。选择一个而不是另一个的原因并不与性能有关,而是与所需的编码风格或编码方便性有关。当然,口译员在a few more opportunities to optimize things内部有await,但不太可能是你决定使用哪个。如果其他条件相同,我会选择await,原因如上所述。但是,我首先选择哪个使代码更易于编写和理解,维护和测试。

使用得当,await经常可以save you a bunch of lines of code making your code simpler to read, test and maintain。这就是它被发明的原因。

两个版本的代码之间没有任何有意义的区别。当axios调用成功或出错时,两者都会获得相同的结果。

如果你有多个连续的异步调用需要序列化,那么await可以带来更多便利。然后,不是将它们分别包含在.then()处理程序中以正确链接它们,而是可以使用await并且具有更简单的代码。

await.then()的常见错误是忘记正确的错误处理。如果您在此函数中的错误处理需求仅返回被拒绝的承诺,那么您的两个版本都会完全相同。但是,如果你连续有多个异步调用,并且你想做更复杂的事情,而不仅仅是返回第一次拒绝,那么error handling techniques for await and .then()/.catch()是完全不同的,看起来更简单将取决于具体情况。

Async / await vs那么哪个性能最好?

我在JavaScript中有一个简单的代码,它在API中执行请求并返回响应,这很简单。但在这种情况下,我会有成千上万的请求。那么,哪一个代码选项会表现得更好,以及为什么。这些天哪一个被推荐为好的实践?

第一个选项是使用.then来解析promises,第二个选项是使用async / await。

在我的测试中,两个选项具有非常相似的结果,没有显着差异,但我不确定规模。

// Using then
doSomething(payload) {
  const url = 'https://link-here/consultas';
  return this.axios.get(url, {
    params: {
      token: payload.token,
      chave: payload.chave,
    },
   }).then(resp => resp.data);
}

// Using Async / await
async doSomething(payload) {
   const url = 'https://link-here/consultas';
   const resp = await this.axios.get(url, {
   params: {
     token: payload.token,
     chave: payload.chave,
    },
 });
 return resp.data;
}

任何解释都很有价值。

回答如下:

await只是.then()的内部版本(基本上做同样的事情)。选择一个而不是另一个的原因并不与性能有关,而是与所需的编码风格或编码方便性有关。当然,口译员在a few more opportunities to optimize things内部有await,但不太可能是你决定使用哪个。如果其他条件相同,我会选择await,原因如上所述。但是,我首先选择哪个使代码更易于编写和理解,维护和测试。

使用得当,await经常可以save you a bunch of lines of code making your code simpler to read, test and maintain。这就是它被发明的原因。

两个版本的代码之间没有任何有意义的区别。当axios调用成功或出错时,两者都会获得相同的结果。

如果你有多个连续的异步调用需要序列化,那么await可以带来更多便利。然后,不是将它们分别包含在.then()处理程序中以正确链接它们,而是可以使用await并且具有更简单的代码。

await.then()的常见错误是忘记正确的错误处理。如果您在此函数中的错误处理需求仅返回被拒绝的承诺,那么您的两个版本都会完全相同。但是,如果你连续有多个异步调用,并且你想做更复杂的事情,而不仅仅是返回第一次拒绝,那么error handling techniques for await and .then()/.catch()是完全不同的,看起来更简单将取决于具体情况。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论