我对nodejs的子进程有疑问,
我从子进程中执行python脚本,首先我调用该脚本,然后编写了给我数据的小函数,接下来是代码:
let Ids = ["221374899","186959187"];
const py = spawn(sails.config.python.path,
[sails.config.python.scriptMain],
{detached: true});
const ListenTask = async () => {
py.stdout.on('data', buff => {
const data = buff.toString().split('\n')
console.log('FROM DATA: ', data)
});
}
const ListenEndTask = async () => {
py.stdout.on('end', () => {
console.log('FROM END: ', 'here i dispatch data of ListenTask')
});
}
const PayloadExecute = (element) => {
let payload = {
"function": "user-basic-data",
"data": {
"username": 'test',
"password": 'xxxtest',
"user_id": element
}
};
py.stdin.write(JSON.stringify(payload));
}
const executeInOrder = async () => {
for (let i = 0; i < Ids.length; i++) {
const element = Ids[i];
await ListenTask();
await ListenEndTask();
await PayloadExecute(element);
await py.stdin.end();
}
}
awaitforcontinue();
const py
拥有python脚本的路由,并抬起python控制台(>>>)
现在,根据数组,我需要随时用python编写,但是我对结束函数await py.stdin.end();
有疑问
UnhandledPromiseRejectionWarning:错误:结束后写入 在writeAfterEnd(_stream_writable.js:236:12) 在Socket.Writable.write(_stream_writable.js:287:5)
如何一次取消python控制台,并根据数组随时编写并保存答案?最后用await py.stdin.end();
停止程序吗?
我尝试使用异步/等待,但我不知道为什么代码停止了。
谢谢。