为什么retrun
语句将不返回x
:
function getData(cb) {
setTimeout(cb, 1000);
}
getData(function () {
var x = 10;
return x;
})
答案 0 :(得分:0)
因为您的getData函数未返回任何内容。 setTimeout正在调用另一个正在返回内容的函数。这是一个不同的功能。 JS在setTimeout内部的函数执行之前很久就为getData返回了值。
答案 1 :(得分:-1)
回调函数通常从不返回值,而是将值作为参数传递。
function getData(cb) {
setTimeout(function(){
var data = 'Here is the data';
cb(data);
}, 1000);
}
getData(function(data){
console.log(data);
});