0
我使用Express框架。如何在节点js中同步运行异步功能
我面临的问题是我创建了一个var持续时间,当收到'/'的请求时,它只是找到给定视频的总持续时间并保存到该变量,但最终我想表明可变的,但不是表明变量值就显示什么,并在未定义显示控制台...
任何人都可以请帮我囤这个代码同步,而不是异步...
非常感谢
我使用Express框架。如何在节点js中同步运行异步功能
我面临的问题是我创建了一个var持续时间,当收到'/'的请求时,它只是找到给定视频的总持续时间并保存到该变量,但最终我想表明可变的,但不是表明变量值就显示什么,并在未定义显示控制台...
任何人都可以请帮我囤这个代码同步,而不是异步...
非常感谢
来处理,你需要把
console.log(duration);
res.send(duration);
的exec
回调内部的异步代码。
修改后的代码:
var duration;
app.get('/', function(req, res){
exec('ffprobe -1 ***', function(){
if(stdout){
duration = stdout;
console.log(duration);
res.send(duration);
}
});
});
这解决了问题,但它是值得一提的是它并没有“使代码同步”。它修复了以前不正确的异步处理。 – Robbie
感谢您的更正@Robbie - 是的!该代码仍然是异步的,现在它只是正确处理。 (编辑答案) –