下面是个异步代码:
var taskAsync = function() { var result = setTimeout(function() { console.log('异步任务的结果') }, 3000) return result } var result = taskAsync() otherTask()
你会发现,这个result并不是异步任务的结果,而是一个 timer id。
那么,如何才能拿到异步任务的结果呢?
答案是:用回调。
将代码改成下面这样:
var taskAsync = function(callback) { var result = setTimeout(function() { callback('异步任务的结果') }, 3000) return result } taskAsync(function callback(result) { console.log(result) //三秒钟后,callback函数会被执行 }) otherTask() //立即执行其他任务,不等异步任务结束