app.get('/:id', function(req , res){
var ID = req.params.id ;
//converter...
var dl = new Downloader();
var i = 0;
dl.getMP3({videoId:req.params.id},function(err,res){
i++;
if(err)
throw err;
else{
console.log("Song "+ i + " was downloaded: " + res.file);
}
var videoTitle=res.file;
});
//i want videoTitle variable right here!
//out of the function
});
这是非常的菜鸟问题,但如何从函数中提取变量? 我无法使用此函数中的此变量值。
仅供参考我使用node express moule .. 提前谢谢。
答案 0 :(得分:1)
你要求的是不可能的。 dl.getMP3
是一种异步方法。这意味着var videoTitle=res.file;
在第一次关闭结束后执行。
因此,如果您要发送回复,则应将代码直接放在var videoTitle=res.file;
答案 1 :(得分:0)
最佳选择是使用return
关键字。这会立即结束该函数并将变量名称带到它的右侧。如果需要多个变量,则返回一个数组。
function nameAnimal(){
var animal = 'cat';
return animal;
}
var animal = nameAnimal();
答案 2 :(得分:0)
我认为这是一个范围问题。如果您在函数之外声明变量,然后在函数内部设置它,那么它应该可供您使用。
app.get('/:id', function(req , res){
var ID = req.params.id ;
//converter...
var dl = new Downloader();
var i = 0;
var videoTitle;
dl.getMP3({videoId:req.params.id},function(err,res){
i++;
if(err)
throw err;
else{
console.log("Song "+ i + " was downloaded: " + res.file);
}
videoTitle=res.file;
});
// videoTitle should be available here!