如何解决代码嵌套太深问题

$.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>
时间: 2024-08-10 23:31:05

如何解决代码嵌套太深问题的相关文章

fatal error C1061: 编译器限制 : 块嵌套太深

VisualStudio开发过程中碰到C1061报错,查了MSDN,文档说明如下 从说明中我们明白这是由于我们的代码块嵌套太深,超过了编译器的限制.但我理解为应该是同一个域内块的数量太多,超过了编译器限制.示例代码如下: void Demo1() { for( int i = 0; i < 10; ++i ) { cout << i << " "; } cout << endl; -重复200个 for( int i = 0; i < 1

gulp使用技巧-删除node_modules文件夹,解决目录层次太深删除报错的问题

问题描述: 在使用gulp当中,自动生成的node_modules文件夹,因为文件目录层级太深,无法系统删除,用360粉碎工具也报错 解决方法: 使用npm中的插件rimraf,专门用于删除的模块插件 1.安装:npm install -g rimraf(全局安装) 2.使用:先定位目标文件夹的父级目录,然后命令行输入rimraf ***(***为需要删除的文件夹名称), 案例:(命令行操作,删除gulptest下的node_modules文件夹) 整个node_modules文件夹被删除的干干

CSS解决无空格太长的字母,数字不会自动换行的问题

其实很简单,代码如下所示,注意 Style: <div class="detail_title" style="word-break: break-all;"><%=StringUtil.toHTML(title) %></div> 默认情况下,一个 DIV或者其他元素的文本,如果都是无文字分隔符,无空格,则不会自动换行,比如: <div class="detail_title" style="

一键解决pdf文件太大如何变小的难题

PDF文件是适用于文件下发,阅读等便捷的电子文件格式,在传输发送的过程中,我们PDF文件较大的情况下,就需要将PDF文件压缩,那么PDF文件太大如何变小呢?对于PDF文件压缩不是太了解的用户可能就想不到好的办法解决,本文将教大家一键解决pdf文件太大如何变小的难题. 1.首先,我们需要了解的是PDF文件进行压缩,我们这里是需要借助到一款叫作迅捷PDF转换器的软件,所以,现在需要做的就是打开浏览器,在电脑上下载安装.软件下载:pdf压缩器http://www.newasp.net/soft/213

ASP.NET中Cookie跨域的问题及解决代码

ASP.NET中Cookie跨域的问题及解决代码 http://www.liyumei.net.cn/post/share18.html Cookies揭秘  http://www.cnblogs.com/zhangziqiu/archive/2009/08/06/cookies-javascript-aspnet.html 最近在项目开发中遇到一个很棘手的问题,一个用户在顶级域名登录后,跳转到自己所拥有的二级域名下管理二级网站时,cookie丢失了,一直找解决办法找了整整两天,百度谷歌一大堆,

完美解决ScrollView嵌套ViewPager滑动失效和无法正常滑动冲突问题

/******************************************************************************* * Copyright 2011, 2012 Chris Banes. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the Li

一键解决ScrollView嵌套ListView仅仅显示一行的问题

/** * 解决ScrollView嵌套ListView仅仅显示一行的问题 * * @param listView */ private void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0;

简单灵活解决 Viewgroup嵌套 产生的手势冲突问题

转载请标明原文地址:简单灵活解决 Viewgroup嵌套 产生的手势冲突问题 这是接着上一篇Android 下拉刷新上拉加载 多种应用场景 超级大放送(上)的,这里介绍一下怎么 简单灵活解决Viewgroup嵌套产生的手势冲突问题.虽然这里只是以ViewPager为例,但是提供了一种解决此类问题的通用思路. 先来看一下网易新闻客户端的界面效果: 当手势方向为蓝色箭头区域方向时,响应ListView的滑动 当手势方向为黄色箭头区域方向时,响应ViewPager的图片滑动 上一篇实现的Demo效果图

夺命雷公狗ThinkPHP项目之----企业网站22之网站前台中间层(解决代码冗余)

我们如果这样写代码虽然可以实现头部二级分类的显示,但是如果再别的控制器下那么会出现显示不了.. 如果再加多一段一样的代码也可以实现出一样的效果: 但是这样会导致代码冗余现象,所以我们为了解决这个问题,可以通过一个中间层来处理,所以我们创建一个CommonController.class.php的控制器来实现解决代码冗余的一部分问题: <?php namespace Home\Controller; use Think\Controller; class CommonController exte