如何 return 来自回调的变量?
How to return a variable from a callback?
我是新手,现在我遇到了问题return从回调函数中获取值
function SumCallback(var1,var2,callback){
callback(var1+var2)
}
function Sum(var1,var2){
SumCallback(var1,var2,function(result){
console.log(result) //5
return result
})
}
console.log(Sum(3,2)) //undefined
我怎样才能 return 以正确的方式获取值?
执行看起来像这样
|-> 这会调用 "SumCallback"
|--> 这调用了 "callback"
|---> 这会调用 console.log(结果)
|---> return "result"
|--> return 未定义
|-> return 未定义
你只需要return回调即可。
function SumCallback(var1,var2,callback){
return callback(var1+var2)
}
function Sum(var1,var2){
return SumCallback(var1,var2,function(result){
console.log(result) //5
return result
})
}
console.log(Sum(3,2)) //5
新的执行看起来像那样
|-> 这会调用 "SumCallback"
|--> 这调用了 "callback"
|---> 这会调用 console.log(结果)
|---> return "result"
|--> return "callback" 的值(结果)
|-> return "SumCallback" 的值(结果)
这可能有效:
function SumCallback(var1, var2, callback) {
callback(var1 + var2)
}
function Sum(var1, var2) {
let sumResult = 0
SumCallback(var1, var2, function (result) {
// return result
sumResult = result
})
return sumResult
}
console.log(Sum(3, 2)) //undefined
另外,在使用callback
时最好使用Promise
或async/await
我是新手,现在我遇到了问题return从回调函数中获取值
function SumCallback(var1,var2,callback){
callback(var1+var2)
}
function Sum(var1,var2){
SumCallback(var1,var2,function(result){
console.log(result) //5
return result
})
}
console.log(Sum(3,2)) //undefined
我怎样才能 return 以正确的方式获取值?
执行看起来像这样
|-> 这会调用 "SumCallback"
|--> 这调用了 "callback"
|---> 这会调用 console.log(结果)
|---> return "result"
|--> return 未定义
|-> return 未定义
你只需要return回调即可。
function SumCallback(var1,var2,callback){
return callback(var1+var2)
}
function Sum(var1,var2){
return SumCallback(var1,var2,function(result){
console.log(result) //5
return result
})
}
console.log(Sum(3,2)) //5
新的执行看起来像那样
|-> 这会调用 "SumCallback"
|--> 这调用了 "callback"
|---> 这会调用 console.log(结果)
|---> return "result"
|--> return "callback" 的值(结果)
|-> return "SumCallback" 的值(结果)
这可能有效:
function SumCallback(var1, var2, callback) {
callback(var1 + var2)
}
function Sum(var1, var2) {
let sumResult = 0
SumCallback(var1, var2, function (result) {
// return result
sumResult = result
})
return sumResult
}
console.log(Sum(3, 2)) //undefined
另外,在使用callback
Promise
或async/await