如何 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

时最好使用Promiseasync/await