每隔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)
  }
}

    原文作者:ilvseyinfu
    原文地址: https://segmentfault.com/a/1190000018319207
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞