• 回调地狱(嵌套金字塔)及promise语法


    1、回调地狱

    • 回调地狱又称嵌套金字塔;
    • 当一个回调函数嵌套一个回调函数的时候,就会出现一个嵌套结构;
    • 当嵌套的多了就会出现回调地狱的情况;
    • 回调地狱,其实就是回调函数嵌套过多导致的;
    • 图示:

    • 当代码成为这个结构以后,已经没有维护的可能了;
    • 所以我们要把代码写的更加艺术一点;
    • 所以就有了接下来的promise语法;

    2、Promise

    • promise是一个ES6的语法,是一个构造函数;
    • 承诺的意思,是专门用来解决异步回调地狱的问题;
    • 要创建一个promise对象,上面创建的对象就是q; 
    • 这个promise对象要传一个回调函数当参数;
    • 这个对象有一个then()方法和catch()方法,参数也要传一个回调函数;
    • then和catch这两个回调函数会被传到promise的回调函数里当参数;
    • resolve代表的是then的回调函数;
    • reject代表的是catch的回调函数;
    • 直接resolve()就是执行then的回调函数,reject()就是执行catch的回调函数,同时只能执行一个函数;
    • 一般我们promise回调函数里希望执行的是异步代码,当外面的代码都执行完了,再执行里面的代码,就是执行其他的回调函数;
    • 下面用了定时器来实现异步的效果,等外面的代码执行完毕了,等2s再执行其他回调函数;
    1. var q = new Promise(function(resolve,reject){
    2. //异步
    3. setTimeout(()=>{
    4. //成功兑现承诺
    5. resolve()
    6. //失败拒绝承诺
    7. //reject()
    8. },2000)
    9. })
    • alt+shift+f:格式化代码,规整代码

  • 相关阅读:
    分组后再子集再查询
    详解 Moloch DAO 特性与治理模式
    【Spring框架】——4.依赖注入(DI)
    零信任的三种主流技术【远航】
    理解Laravel中的pipeline
    ElasticSearch (ES)学习之路(六)Springboot2.3.1整合ES 7.6.1
    Oracle-PDB资源限制
    JavaScript面试常见问题(二)
    【JUC】并发需要了解的关键字volatile
    【数据治理】终于有人把数据安全治理讲明白了
  • 原文地址:https://blog.csdn.net/a1598452168YY/article/details/127823073