我正在考虑多次服务调用收集响应并将其设置在变量中的时间。例如,在这样的电话中:
response = svc.call.someService()
我可以像这样围绕日期通话:
var start = new Date.getTime();
response = svc.call.someService();
var end = new Date.getTime();
var time = end - start;
但我需要在整个代码中使用多个服务调用来执行此操作,并希望以某种方式创建一个可以为我执行此操作的函数,但保持响应变量的方式。我也无法改变服务本身。有什么想法以优雅的方式收集服务电话需要多长时间?
答案 0 :(得分:1)
您可以创建一个完全按照您的建议执行的包装函数,并将服务器调用引用作为参数传递给它,就像这样....
function timeServiceCall(serviceCall) {
var start = new Date.getTime();
var response = serviceCall();
var end = new Date.getTime();
console.log("time taken = " + end - start);
return response;
}
然后你就这样打电话给服务电话......
var response = timeServiceCall(svc.call.someService);
答案 1 :(得分:1)
创建一个包装函数,如下所示:
function time (callback) {
var start = new Date().getTime();
var result = callback.call();
return [result, new Date().getTime() - start];
}
然后像这样使用:
var called = time(svc.call.someService);
var result = called[0];
var timeTaken = called[1];