zoukankan      html  css  js  c++  java
  • 如何解决代码嵌套太深问题

    $.ajax({
        success: function () {
            $.ajax({
                success: function () {
                    $.ajax({
                        success: function () {
                            complete();
                        }
                    });
                }
            });
        }
    });

    解决方案: 

    <script>
        /*
        * 拿几个setTimeout做例子。
        * 一秒后输出1, 然后一秒后输出2, 然后一秒后输出3
        * 原始做法是一句句嵌套下去
        */
        
        setTimeout(function(){
            //输出1
            console.log(1);
            setTimeout(function() {
              //输出2
              console.log(2); 
              setTimeout(function() {
                  console.log(3);
              }, 1000);
            }, 1000);
        }, 1000);
        
        
        /*
        *  现在出现了一种比较好的写法, 就是用Promise.js来简单来写
        */
        
        var asny = function (text) {
            var promise = new Promise(function(resolve, reject) {
                setTimeout(function() {
                    console.log(text);
                    resolve();
                }, 1000)
            });
            
            return promise;
        }
        
        asny("1").then(function(){
            return asny("2");    
        }).then(function () {
            return asny("3");
        }).then(function() {
            console.log("done");
        });
    
    
    
        
        
    </script>
  • 相关阅读:
    列表和元组
    UVM宏
    UVM中重要函数
    组合模式(composite)
    装饰器模式(Decorator)
    适配器模式(Adapter)
    桥接模式
    原型模式(prototype)
    单例模式(singleton)
    UML类图
  • 原文地址:https://www.cnblogs.com/facial/p/5847612.html
Copyright © 2011-2022 走看看