方法一:
先打印1,1.5秒之后打印2,下面完美代码就是参照这个实现的
/*
休眠函数sleep
调用 await sleep(1500)
*/
function sleep(ms) {
return new Promise(resolve=>setTimeout(resolve, ms))
}
async function main() {
console.log(1)
await sleep(1500)
console.log(2)
}
main()
方法二:链接地址
for(var i = 0; i < 3; i++) {
(function(i) {
setTimeout(function() {
console.log(i);
}, (i + 1) * 1000);
})(i)
}
方法三
function timer(timeout) {
let i = 0;
// let t;
time();
function time() {
if (i < timeout) {
console.log(i);
i++;
setTimeout(time, 1000);
} else {
return;
}
}
}
timer(10);
顺序执行
for (let i = 0; i < 10; i++) {
setTimeout(() => {
console.log(`这是外层${i}`);
}, 1000);
for (let j = 0; j < 5; j++) {
setTimeout(() => {
console.log(`这是内层的${j}`);
}, 1000);
}
}
完美嵌套多层for顺序找执行
function sleep(ms) {
return new Promise(resolve=>setTimeout(resolve, ms));
}
async function main() {
for (let i = 0; i < 5; i++) {
for (let j = 0; j < 3; j++) {
console.log(i,j);
await sleep(1000);
}
}
}
main();
注意:这个完美代码必须在chrome的console面板(F12打开开发者工具可找到)运行才有效果,其他js在线运行工具效果不理想,耽误我许多工夫,以为编写代码有问题,实际上在线运行工具的问题。