在大多数情况下,史诗会听一个动作并发出一个动作,其中有很多异步任务。我想测量动作和动作之间的史诗的持续时间。我怎么能这样做?
答案 0 :(得分:1)
您可以使用Performance.now()
来衡量任务之间的时间:
var t0 = performance.now();
doSomething();
var t1 = performance.now();
console.log("Call to doSomething took " + (t1 - t0) + " milliseconds.");
在您的动作和史诗的上下文中,您可以在初始操作中包含时间戳,然后稍后调用Performance.now()
,从第二个中减去第一个测量值。那是你们之间的差距。
作为一个例子,这个测量从ajax请求之前到ajax响应之后返回并创建了新操作:
action$.pipe(
ofType("PING"),
switchMap(action => {
const before = Performance.now();
return ajax.getJSON("/ping").pipe(
map(pong => {
const after = Performance.now();
return { type: "PONG", delta: after - before };
})
);
})
);