for

作者: _theFeng | 来源:发表于2019-03-19 16:06 被阅读0次
    for(var i=0;i<5;i++){
      console.log(i) // 01234
    }
    console.log(i) //5   按顺序执行
    
    for (var i = 0; i < 5; i++) {
        setTimeout(() => {
          console.log(i) // 5个5
        }, 1000);
    }
    console.log('第几个执行',i) //第一个执行
    
    解决上述的三种办法
    var  output=(i)=>{
      setTimeout(() => {
        console.log(i)
      }, i*1000);
    }
    
    for (var i = 0; i < 5; i++) {
      output(i)
    }
    console.log('第几个执行', i) //第一个执行
    
    for(let i=0;i<5;i++){
      console.log(i) // 01234
    }
    console.log(i) // i is not defined
    
    for(var i=0;i<5;i++){
      (function(){
        setTimeout(() => {
          console.log(i)  // 一秒一个5 这是一个坑  自执行函数没有传参数
        }, i*1000);
      })(i)
    }
    
    for(var i=0;i<5;i++){
      (function(i){
        setTimeout(() => {
          console.log(i)  // 隔一秒01234
        }, i*1000);
      })(i) // 
    }
    console.log(i)// 第一个执行
    
    const tasks = []; // 这里存放异步操作的 Promise
    const output = (i) => new Promise((resolve) => {
      setTimeout(() => {
        console.log(new Date, i);
        resolve();
      }, 1000 * i);
    });
    
    // 生成全部的异步操作
    for (var i = 0; i < 5; i++) {
      tasks.push(output(i));
    }
    
    // 异步操作完成之后,输出最后的 i
    Promise.all(tasks).then(() => {
      setTimeout(() => {
        console.log('执行完之后在执行', i); // 最后一个执行
      }, 1000);
    });
    

    相关文章

      网友评论

          本文标题:for

          本文链接:https://www.haomeiwen.com/subject/bucnmqtx.html