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