我想在第一个功能完成后执行第二个功能。结果:i:0,i:1,...,i:9,j:0,j:1,...,j:9
function first(callback){
for(let i = 0 ; i < 10;i++){
setTimeout(() => {
console.log('i: ',i);
},10*i);
}
setTimeout(() => {
callback();
},10*i);
}
function second(){
for(let j = 0 ; j < 10; j++){
setTimeout(() => {
console.log('j: ',j);
},10*j);
}
}
first(second());
first
中有10次迭代,因此second
的回调应在10 * 10
毫秒后运行。另外,请确保将second
传递到first
,而不是立即调用second
:
function first(callback) {
for (let i = 0; i < 10; i++) {
setTimeout(() => {
console.log('i: ', i);
}, 10 * i);
}
setTimeout(callback, 10 * 10)
}
function second() {
for (let j = 0; j < 10; j++) {
setTimeout(() => {
console.log('j: ', j);
}, 10 * j);
}
}
first(second);