zoukankan      html  css  js  c++  java
  • 异步回调的经典案例

    for (var i =0; i <5; i++){
    	setTimeout(function() {
    		console.log(i)
    	},i*i*1000)
    }
    var tag = 0
    setInterval(function() {
    	tag++
    	console.log('我是标记'+tag)
    },1000)
    

      执行结果:

    // 99758@zsh MINGW64 ~/Desktop
    // $ node test.js
    // 5 		0秒后打印
    // 5 		1秒后打印
    // 我是标记1 1秒后打印
    // 我是标记2 2秒后打印
    // 我是标记3 3秒后打印
    // 5 		4秒后打印
    // 我是标记4 4秒后打印
    // 我是标记5 5秒后打印
    // 我是标记6 6秒后打印
    // 我是标记7 7秒后打印
    // 我是标记8 8秒后打印
    // 5		9秒后打印
    // 我是标记9 9秒后打印
    // 我是标记10 10秒后打印
    // 我是标记11 11 秒后打印
    // 我是标记12 12 秒后打印
    // 我是标记13 13 秒后打印
    // 我是标记14 14 秒后打印
    // 我是标记15 15 秒后打印
    // 5	     16 秒后打印
    // 我是标记16 16 秒后打印
    // 我是标记17 17 秒后打印
    // 我是标记18 18 秒后打印
    // 手动停止。。。

    将上述代码改造下:

    for (let i =0; i <5; i++){
    	setTimeout(function() {
    		console.log(i)
    	},i*i*1000)
    }
    var tag = 0
    setInterval(function() {
    	tag++
    	console.log('我是标记'+tag)
    },1000)
    

      转换成js

    'use strict';
    
    var _loop = function _loop(i) {
    	setTimeout(function () {
    		console.log(i);
    	}, i * i * 1000);
    };
    
    for (var i = 0; i < 5; i++) {
    	_loop(i);
    }
    var tag = 0;
    setInterval(function () {
    	tag++;
    	console.log('我是标记' + tag);
    }, 1000);
    

      跑起来:

    // 执行结果:
    // 99758@zsh MINGW64 ~/Desktop
    // $ node test.js
    // 0 		0秒后打印
    // 1 		1秒后打印
    // 我是标记1 1秒后打印
    // 我是标记2 2秒后打印
    // 我是标记3 3秒后打印
    // 2 		4秒后打印
    // 我是标记4 4秒后打印
    // 我是标记5 5秒后打印
    // 我是标记6 6秒后打印
    // 我是标记7 7秒后打印
    // 我是标记8 8秒后打印
    // 3		9秒后打印
    // 我是标记9 9秒后打印
    // 我是标记10 10秒后打印
    // 我是标记11 11 秒后打印
    // 我是标记12 12 秒后打印
    // 我是标记13 13 秒后打印
    // 我是标记14 14 秒后打印
    // 我是标记15 15 秒后打印
    // 4	     16 秒后打印
    // 我是标记16 16 秒后打印
    // 我是标记17 17 秒后打印
    // 我是标记18 18 秒后打印
    // 手动停止。。。
    

      

  • 相关阅读:
    JQuery批量图片上传插件—Uploadify使用记录
    SQL2008 附加数据库提示 5120错误
    enter the full pathname for java.exe
    共享文件夹设置
    曾经运行该线程的应用程序域已卸载
    无法打开物理文件 。操作系统错误 5:"5(拒绝访问。)"。 消息 5120,级别 16,状态 101
    开篇一个码农,一个苦逼的码农生活经历
    POI 3.17 读取Excel(模板)、导出Excel
    Java微信支付开发之关闭订单
    Linux下安装 MySQL5.7.28
  • 原文地址:https://www.cnblogs.com/zhouxiaohouer/p/7905186.html
Copyright © 2011-2022 走看看