乐趣区

每隔1s打印0-5

关键词:闭包 异步 词法作用域 事件队列 es6 ….

(function print() {
for (var i = 0; i < 5; i++) {
setTimeout(() => console.log(i),i*1000)
}
})()

// 上面的方法 每隔 1s 打印 5

(function print() {
for(let i = 0; i < 5; i++) {
setTimeout(() => console.log(i), i*1000)
}
})()

// 每隔一秒打印 0 1 2 3 4

(function print() {
for(var i = 0; i < 5; i++) {
(function(i) {
setTimeout(() => console.log(i), i*1000)
})(i)
}
})()
// 每隔一秒打印 0 1 2 3 4

function print(i) {
return new Promise((resolve, reject) => {
setTimeout(() => resolve(i), i*1000)
})
}
var arr = [];
for (var i = 0; i < 5; i++) {
arr.push(print(i))
}

for (var i = 0; i < 5; i++) {
arr[i].then(data => console.log(data))
}
// 每隔一秒打印 0 1 2 3 4
// promise 是一个容器,里面包含着异步操作

function print(i) {
return new Promise(resolve => {
setTimeout(() => resolve(i), 1000)
})
}

async function main() {
for(var i = 0; i < 5; i++) {
var r = await print(i)
console.log(r)
}
}

退出移动版