function A(params, callback){
callback(params+1)
}
function B(num1){
A(num1, (num)=>{
return num;
});
}
let a = 3;
let num = B(a);
console.log(num) //undefined
上面这段代码,B函数调用了A函数,A函数接收一个参数和一个回调函数,A的回调函数返回了num,但是在外层console的num却是undefined
一种方法是讲后续的操作都放在A的回调函数里
function A(params, callback){
callback(params+1)
}
function B(num1){
A(num1, (num)=>{
console.log(num) //4
return num;
});
}
let a = 3;
let num = B(a);
//console.log(num)
但是这样B函数就很难复用
还可以采取返回Promise的办法
function A(params, callback){
callback(params+1)
}
function B(num1){
return new Promise((resolve, reject)=>{
A(num1, (num)=>{
console.log(num) //4
resolve(num)
})
})
}
let a = 3;
let num = B(a).then((data)=>{
console.log(data) //4
});