0
我們有登錄我們的用戶,像這樣的API請求:如何計算執行時間的NodeJS ChildProcess.exec
...
//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 ?
}
});
});
...
我看到打印的執行時間是不正確的,因爲當許多用戶在登錄同時,用於計算executionTime(「Date.now() - t0」)的「t0」值未正確計算。它使用此API請求的最近調用的t0值,而不是適當的t0值。
這是因爲exec方法是異步的,需要時間來執行。
如何正確執行正確的執行時間(「Date.now() - t0」),其中原始t0變量丟失?
爲什麼變量是全局變量?這可能會導致您的問題。將變量t0等作用於添加var之前的函數。 – mrdotb
哦,非常感謝你!修好了! – inconnu26