javascript - 无法从使用 python 的 nodejs 应用程序中的函数返回 json?
问题描述
我认为正在发生一些我无法弄清楚的异步事情async-await
如果可能的话,请告诉我如何解决这个问题。
我的代码:
const {spawn} = require('child_process')
const getWeatherReport = (location) => {
let dataToSend, result
const python = spawn('python', [__dirname+'\\weathergetter.py', location.toString()])
python.stdout.on('data', (data) => {
console.log('Pipe data from python script ...');
dataToSend = JSON.parse(data.toString().replace(/\'/g, '\"'));
// console.log(dataToSend)
})
python.stderr.on('data', data => {
console.error(`stderr: ${data}`)
})
python.on('close', (code) => {
console.log(`child process close all stdio with code ${code}`);
// console.log(dataToSend)
})
return dataToSend
}
var wea = getWeatherReport("kolkata")
console.log(wea)
输出: 来自python脚本的
未定义管道数据...... 子进程关闭所有带有代码0的stdio
我希望函数返回json object
分配给dataToSend
. 在这里,我实际上正在使用 python 脚本。
python脚本没有问题。当我console.log(dataToSend)
进入python.stdout.on()
并在代码python.on()
中注释掉时,json 对象被打印到控制台。但我不能让函数返回 json 对象。
请参阅这些以了解我所关注的内容:
解决方案
推荐阅读
- python - Azure Linux Web 应用程序(startup.sh:未找到)
- compilation - 如何编译过时的内核(2.4.5)
- html - 我将网页的标题固定在顶部。那么为什么内容会在标题下进行呢?
- javascript - 无法在 React-native 元素中呈现 ListItem
- tomcat - 设置 Tomcat 9.0.19 时未正确定义 CATALINA_HOME 环境变量
- amazon-web-services - 如何在启动时为 ubuntu server 18.04 运行命令?
- python - 将一个字典中的键关联到另一字典中的值
- haskell - 转换元组
- c - 我不明白这个代码数组和指针
- kotlin - 如何使用 JUnit 5 在 Kotlin 中创建 TestContainers 基测试类