function ff(a,b){
setTimeout(() => {
return a+b
}, 3000);
}
function f(callback){
var x=3,y=4;
var z=callback(x,y);
console.log("主函数")
return z;
}
console.log(f(ff));//这里返回的是undefined
setTimeout(() => {
return a+b
}, 3000);
}
function f(callback){
var x=3,y=4;
var z=callback(x,y);
console.log("主函数")
return z;
}
console.log(f(ff));//这里返回的是undefined
不过你这里面用到了setTimeout,作用域被隔离了,需要重新设计
function ff(a, b, cbk) {
setTimeout(() => {
cbk(a + b);
}, 3000);
}
function f(callback) {
var x = 3, y = 4;
var z = 0;
callback(x, y, function (re) {
z = re;
console.log(z)
});
console.log("主函数")
return z;
}
f(ff);
setTimeout(() => {
cbf(a+b);
}, 3000);
}
function f(callback,cbf){
var x=3,y=4;
var z=callback(x,y,cbf);
}
f(ff,function(rv){
console.log(rv);
})
return new Promise(resolve=>{
setTimeout(() => {
resolve(a+b);
}, 3000);
});
}
async function f(callback){
var x=3,y=4;
var z= await callback(x,y);
console.log("主函数")
return z;
}
(async function () {
console.log(await f(ff));
})();