我们有一个登录用户的 API 请求,如下所示:
...
//lauches an API request
router.post("/trip/analyse",function(req,res){
t0 = Date.now();
shell = ("sudo /usr/bin/python /mypythonFile");
child = exec(shell, function (error, stdout, stderr) {
if (error) { //There is an error
res.json({"Error" : true});
console.log(Date.now() - t0); // <-------- HERE, How to get this right ?
}else{ //everything went fine
res.json({"Error" : false});
console.log(Date.now() - t0); // <-------- HERE, How to get this right ?
}
});
});
...
我发现打印的执行时间不正确,因为当许多用户同时登录时,用于计算执行时间的“t0”值(“Date.now() - t0”)未正确计算。它使用最近调用此 API 请求的 t0 值,而不是适当的 t0 值。
这是因为 exec 方法是异步的,执行需要时间。
如何正确正确执行时间(“Date.now() - t0”),其中原始 t0 变量丢失?
最佳答案
我只需要把
var t0 = Date.now();
它成功了!
关于javascript - 如何计算 Nodejs ChildProcess.exec 中的执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43143463/