1.javascript 每隔一秒 打印 1,2,3,4,5
1.利用let(块级作用域)
for(let i=0;i<5;i++){
setTimeout(function(){
console.log(i)
},1000*i)
}
2.利用闭包
for(var i=0;i<5;i++){
(function(i){
setTimeout(function(){
console.log(i)
},1000*i)
})(i)
}
3.利用Promise
var arr = [];
var output = (i) => new Promise(resolve => {
setTimeout(()=>{
console.log(i)
resolve()
}, 1000*i)
});
for (var i=0; i<5; i++) {
arr.push(output(i))
}
Promise.all(arr);
2.实现一个sleep函数,比如 sleep(1000) 意味着等待1000毫秒
1.利用Promise和setTimeout
function sleep(ms){
return new Promise((resolve)=>{
setTimeout(resolve,ms)
})
}
sleep(2000).then(()=>{
console.timeEnd('test');
})
2.利用async/await和Promise,setTimeout
function sleep(ms) {
return new Promise(function(resolve, reject) {
setTimeout(resolve, ms)
})
}
async function init() {
await sleep(3000);
}
init().then(() => {
console.log(3000)
})
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。