一段函数中包含着异步执行结果,则无法直接获取到其中的数据 例如: function fn(){ var data = '默认数据' setTimeout(() => { var data = 'hello' }, 1000); return data}// 掉用fnconsole.log( fn()) 可以发现,并没有得到hello这个值 那么要想获得函数中异步操作的结果,必须通过回调函数来获取 function fn(callback){ var data = '默认数据' setTimeout(() => { var data = 'hello' callback(data) // 掉用callback(data),实际上就是console.log(data) }, 1000);}// 掉用fn// 相当于 var callback = function(data){ console.log(data) }fn(function(data){ console.log(data)}) 思维有点绕,捋一捋,品一品就明白了