music.playsong = function(vars){
//vars is an array with a Key named "song"
youTube.search(vars["song"], 2, function(error, result) {
if (error) {
console.log(error)
return;
}else {
console.log("Success")
return result
}
})
}
我目前将此函数称为
music.playsong(data)
但是在这个函数中我无法访问底层回调并从中获取值。如何让这个 music.playsong() 返回回调结果而不阻塞执行?
最佳答案
您想要使用异步函数作为同步。所以这是不可能的。因此,您需要将方法更改为异步方法,如下所示:
music.playsong = function(vars, cb){
//vars is an array with a Key named "song"
youTube.search(vars["song"], 2, function(error, result) {
if (error) {
console.log(error)
process.nextTick(() => {
cb(error)
})
}else {
console.log("Success")
process.nextTick(() => {
cb(null, result)
})
}
})
}
关于javascript - 将回调中的变量返回到定义的函数中-NodeJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38674958/