【发布时间】:2019-07-29 20:53:12
【问题描述】:
对最佳实践感到困惑。
Using async-await is better than using promises.是吗?
如何判断aync/await和promises的用途?
下面我只是写了两个代码sn-ps。一个使用aync/await,另一个不使用。
哪个会更快?
CASE 1 的优势是什么?
哪个是最新的方法和优势?
案例一
var promise1 = rp('https://api.example.com/endpoint1');
var promise2 = rp('https://api.example.com/endpoint2');
var response1 = await promise1;
var response2 = await promise2;
return response1 + ' ' + response2;
案例 2
var promise1 = rp('https://api.example.com/endpoint1');
var promise2 = rp('https://api.example.com/endpoint2');
return Promise.all([promise1, promise2])
.then(function(values){
return values[0] + values[1];
});
【问题讨论】:
-
async/await是 forPromises不是Promises -
能否请您回顾一下这两个案例,它们之间有什么区别?
-
Async/await 只是编写 Promise 的花哨语法。所以大多数会归结为偏好。案例 1 写起来更短。案例 2 让我们更难忘记函数是异步的。我是那些发现承诺链更容易遵循的人之一。
-
@slideshowp2 — 不。promise 都在 either 为
awaited之前初始化。它们将在两种情况下并行执行。 -
您的情况几乎相同。但是如果你这样做
var r1 = await rp('https://api.example.com/endpoint1'); var r2 = await rp('https://api.example.com/endpoint2')行为会有所不同:请求将按顺序运行。
标签: javascript node.js asynchronous promise async-await