【问题标题】:Determine how long a promise took [duplicate]确定承诺需要多长时间[重复]
【发布时间】:2021-08-08 05:31:58
【问题描述】:
我将 q 库用于承诺。我有以下代码
Q.all([thumbnailPromise, createSnapshotPromise]).spread((thumbnailRep, snapshotRep) => {
我如何确定每个承诺需要多长时间?具体来说,thumbnailPromise 和 createSnapshotPromise 分别花了多长时间?
请注意,我想保持 Promise 并行运行。
谢谢!
【问题讨论】:
标签:
javascript
node.js
promise
q
【解决方案1】:
我猜你可以写一个包装你的承诺的函数:
const timedPromise = async (promFac) => {
const start = performance.now();
const returnValue = await promFac();
return {
value: returnValue,
elapsed: performance.now() - start;
}
}
并像这样使用它:
Q.all([
timedPromise(() => thumbnailPromise) ,
timedPromise(() => createSnapshotPromise)])
.spread((thumbnailRep, snapshotRep) => {
console.log(`thumbnailProm took ${thumbnailRep.elapsed}, returned ${thumbnailRep.value}`);
})
未经测试。