我写了一个异步函数,它需要调用服务器中的一个程序,该程序生成一个文件,该文件需要在UI中加载以进行显示。我不确定如何在我的UI中显示结果,因为execFile是异步函数,可能需要几秒钟的时间才能准备好结果?
我是否需要一种无限循环来检查服务器中的结果准备好了吗?
我正在使用nodejs-express把手。
router.post('/',function(req, res, next) {
const child = execFile('program.exe', ['in.sql'], (error, stdout, stderr) => {
if (error)
{
console.log(error);
return error;
}
else
{
// TODO: how to send the result to UI?
console.log(stdout);
}
});
return res.sendStatus(200);
});
我想做什么的图表。
发布于 2018-12-11 06:31:43
尽可能避免轮询。有时你无法避免它,但在这里你可以。只需使用事件处理程序来找出流程的状态。您可以为以下相关事件注册处理程序:
下面是一个用法示例:
child.on('exit', function (code, signal) {
console.log('child process exited with ' +
`code ${code} and signal ${signal}`);
});
有关更多信息,请参阅freeCodeCamp网站(非附属公司)上的this detailed explanation。
https://stackoverflow.com/questions/53694567
复制相似问题