gpt4 book ai didi

javascript - Async/await vs then 哪个性能最好?

转载 作者:搜寻专家 更新时间:2023-11-01 00:13:46 24 4
gpt4 key购买 nike

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

第一个选项是使用 .then 来解决 promise ,第二个选项是使用 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;
}

任何解释都会很有值(value)。

最佳答案

从性能的 Angular 来看,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() 的一个常见错误是忘记了正确的错误处理。如果您在此函数中的错误处理愿望只是返回被拒绝的 promise ,那么您的两个版本都会以相同的方式执行此操作。但是,如果你连续有多个异步调用,并且你想做比返回第一个拒绝更复杂的事情,那么 error handling techniques for await and .then()/.catch()完全不同,哪个看起来更简单将取决于情况。

关于javascript - Async/await vs then 哪个性能最好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54495711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com