我目前正在尝试使用 NodeJS(使用 Koa 框架)生成一个子进程来处理一些 POST 数据。
理想情况下,我想在重定向之前等待子进程完成,但由于子进程是异步的,代码总是首先重定向。很长一段时间以来,我一直在尝试解决这个问题,并想出了一些骇人听闻的方法来部分解决它,但没有什么非常干净或可用。
处理这个问题的最佳方法是什么?
下面是我的发布路由的功能(使用 koa-route 中间件)。
function *task() {
var p = spawn("process", args);
p.on("data", function(res) {
// process data
});
p.stdin.write("input");
this.redirect('/'); // wait to execute this
}