我想花时间进行API调用。
我有一个带有angularJS前端的web应用程序和具有端到端连接的nodejs后端。
后端路由
//cargo-service.js
module.exports = function(key){
return new asyncTimedCargo(function(tasks, callback) {
var length = tasks.length;
var postBody = [];
for(var i=0;i<length;i++){
var message ={};
var task = JSON.parse(tasks[i].value);
message = task;
postBody.push(message);
}
var postJson = {
"json": {"request":postBody}
};
sms_queue.push(postJson);
callback();
}, batch_config.batch_size, batch_config.batch_timeout)
};
//kafka-consumer.js
cargo = cargo-service()
consumer.on('message', function (message) {
if(message && message.value && utils.isValidJsonString(message.value)) {
var msgObject = JSON.parse(message.value);
cargo.push(message);
}
else {
logger.error('Invalid JSON Message');
}
});
// sms-queue.js
var sms_queue = queue(
retryable({
times: queue_config.num_retries,
errorFilter: function (err) {
logger.info("inside retry");
console.log(err);
if (err) {
return true;
}
else {
return false;
}
}
}, function (task, callback) {
// your worker task for queue
callback()
}), queue_config.queue_worker_threads);
sms_queue.saturated = function() {
consumer.pause();
logger.warn('Queue saturated Consumption paused: ' + sms_queue.running());
};
sms_queue.unsaturated = function() {
consumer.resume();
logger.info('Queue unsaturated Consumption resumed: ' + sms_queue.running());
};
呼叫api的前端服务
app.get('/api/eventUploadRead', function(req, res) {
filesReadUploads.find(function(err, events) {
if (err)
res.send(err);
res.json(events);
});
});
控制器
getUploadRead : function() {
return $http.get('/api/eventUploadRead');
},
我想要做的就是花费时间,直到数据从API call.t传递给控制器 这样做的原因是,我希望随着数据负载的减少来测量时间变化。我希望减少数据负载并测量相应加载所需的时间。
任何人都可以帮助我吗?如果不清楚请告诉我。
由于
答案 0 :(得分:1)
您可以在服务电话前后启动计时器,以计算所需的时间。
var start = new Date().getTime();
getEventsOfUploadedFile();
$scope.events;
function getEventsOfUploadedFile()
{
Event.getUploadRead()
.success(function(event){
var end = new Date().getTime();
$scope.events=event;
})
.error(function (error) {
$scope.status = 'Unable to load event data: ';
});
}
total_time = end - start;
您还可以使用chrome开发人员工具分析服务电话的时间。
答案 1 :(得分:1)
作为@Vivz的上述替代方案,我使用console.time
函数来测量持续时间(ms)。
/* start time ‘test’ */
console.time('test');
/* stop time ‘test’ */
console.timeEnd('test');
/* stop time output ms */
test: 8254.471ms
答案 2 :(得分:1)
您可以使用console.time()
/ console.timeEnd()
为请求计时:
function getEventsOfUploadedFile() {
console.time('getUploadRead');
Event.getUploadRead()
.success(function(event) {
$scope.events = event;
})
.error(function(error) {
$scope.status = "Unable to load event data: ";
})
.finally(function() {
console.timeEnd('getUploadRead');
});
}
答案 3 :(得分:1)
您还可以使用performance.now()。这个link在console.time和performance.now。
之间进行了一些比较