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);
});