我有以下代码。我先上传文件,然后读取文件并像
我无法得到
console.log(obj)
一样输出。但是响应先返回,而Python脚本在后台运行。如何让代码等待Python脚本运行后再继续进行?router.post(`${basePath}/file`, (req, res) => {
//Upload file first
PythonShell.run('calculations.py', { scriptPath: '/Path/to/python/script' }, function (err) {
console.log(err);
let obj = fs.readFileSync('Path/to/file', 'utf8');
console.log(obj);
});
return res.status(200).send({
message : 'Success',
});
});
我无法得到
console.log(obj);
的输出,因为它在响应之后运行。如何使其等待 Python 脚本运行并在控制台上获取 console.log(obj)
的输出?
res.status(200).send
移动到第三个PythonShell.run
参数回调函数的末尾。这样可以在脚本完成后发送一个 200 响应。 - dhiltconsole.log(obj)
的结果吗? - dhiltlet obj = fs.readFileSync('Path/to/file', 'utf8');
不起作用,检查文件是否存在内容或文件,如果没有内容,则会出现错误。请调试一下。 - Himanshu sharma