确定一个承诺花了多长时间
Determine how long a promise took
我正在使用 q 库来实现承诺。我有以下代码
Q.all([thumbnailPromise, createSnapshotPromise]).spread((thumbnailRep, snapshotRep) => {
如何确定每个承诺花费的时间?具体来说thumbnailPromise和createSnapshotPromise分别用了多长时间?
请注意,我要同时遵守承诺运行。
谢谢!
我想你可以写一个包装你的承诺的函数:
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}`);
})
未测试。
可以使用console.time()
; MDN reference
另一种选择是使用 hrtime.
Promise 是函数,如果您不能直接访问函数,可以将它们包装在一个函数中。
我正在使用 q 库来实现承诺。我有以下代码
Q.all([thumbnailPromise, createSnapshotPromise]).spread((thumbnailRep, snapshotRep) => {
如何确定每个承诺花费的时间?具体来说thumbnailPromise和createSnapshotPromise分别用了多长时间?
请注意,我要同时遵守承诺运行。
谢谢!
我想你可以写一个包装你的承诺的函数:
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}`);
})
未测试。
可以使用console.time()
; MDN reference
另一种选择是使用 hrtime.
Promise 是函数,如果您不能直接访问函数,可以将它们包装在一个函数中。