zoukankan      html  css  js  c++  java
  • 前端知识总结--js异步事件顺序

    js中异步事件中容易混淆的 Promise 和 setTimeout 的执行顺序是怎样的?

            setTimeout(() => console.log(1), 0);
    
            new Promise(function (resolve, reject) {
                console.log(2); 
                //resolve(1);
                setTimeout(function(){
                    console.log(3);
                    resolve(1);
                }, 0);
            })
            .then(() => {
                console.log(4)
            })
    
            console.log(5)
    
            setTimeout(() => console.log(6), 1000);
    
            setTimeout(() => console.log(7), 0);
    
            setTimeout(() => console.log(8), 1000);

    输出:

        2
        5
        1
        3
        4
        7
        6
        8

    如果Promise中不包含异步事件:

            setTimeout(() => console.log(1), 0);
    
            new Promise(function (resolve, reject) {
                console.log(2); 
                resolve(1);
                // setTimeout(function(){
                //     console.log(3);
                //     resolve(1);
                // }, 0);
            })
            .then(() => {
                console.log(4)
            })
    
            console.log(5)
    
            setTimeout(() => console.log(6), 1000);
    
            setTimeout(() => console.log(7), 0);
    
            setTimeout(() => console.log(8), 1000);

    输出:

        2
        5
        4
        1
        7
        6
        8
  • 相关阅读:
    订单生成案例详解
    分页案例详解
    简单的多条件查询案例
    删除选中案例详解
    转账汇款案例
    登录操作记住用户名实现
    根据自定义异常来回显错误信息
    会话技术cookie和session详解
    JDBC
    Netty入门教程——认识Netty
  • 原文地址:https://www.cnblogs.com/fanlu/p/10824932.html
Copyright © 2011-2022 走看看