1. 使用全局变量控制异步任务数量
let person = {}
let index = 0
function cb(){
if(++index == 2){
console.log(person)
}
}
setTimeout(function(){
person.name = "xsl"
cb()
},3000)
setTimeout(function(){
person.age = 18
cb()
},5000)
2. 使用闭包控制异步任务数量
let person = {}
function after(time, callback){
console.log("timeA", time)
return function(){
// 因为在after被调用的时候只产生了一个语法 环境 两个cb都是在这一个语法环境执行的 所以共用一个time
console.log("timeB", time)
if(--time === 0){
callback()
}
}
}
let cb = after(2, function(){
console.log(person)
})
setTimeout(function(){
person.name = "xsl"
cb()
},3000)
setTimeout(function(){
person.age = 18
cb()
},5000)