我是新手,现在我无法从回调函数返回值
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
如何以正确的方式返回值?
执行看起来像那样
| - >这称为“SumCallback”
| - >这称为“回调”
| --->这会调用console.log(结果)
| --->返回“结果”
| - >返回undefined
| - >返回undefined
您只需要返回回调。
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”
| - >这称为“回调”
| --->这会调用console.log(结果)
| --->返回“结果”
| - >返回“回调”的值(结果)
| - >返回“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
另外,在使用Promise
时,最好使用async/await
或callback