美文网首页
02_10.promise的初步使用

02_10.promise的初步使用

作者: Robyn_Luo | 来源:发表于2017-11-13 17:04 被阅读0次
 <script>
    /**
    * 假定我们有这样一个需求:某人和青梅竹马的芳芳约定,如果十年后她还没嫁,就嫁给我
    * 这个需求中就含有异步逻辑的处理,芳芳要不要嫁给我需要等待10年后才会知晓
    */ 

    // console.log(10);
    // setTimeout(function() {
    //    console.log('十年到了,该嫁了');
    //    if('没房没车') {
    //        setTimeout(function() {
    //           console.log('十年到了,该嫁了');
    //        }, 1000 * 5);
    //    }
    // }, 1000 * 10);
    // console.log(20);

    // 大部分解决异步逻辑的方式是添加回调函数,
    // 但是这种方式存在弊端, 如果异步逻辑还有异步逻辑就会嵌套, 不好维护
    // 还有一大弊端,就是异步处理逻辑必须一开始就得设计好

    // 使用promise
    // 第一步: new Promise
    // 需要传一个回调函数, 这个函数供promise使用,promise在使用它的时候会传入两个方法yes与no
    let p = new Promise(function(yes, no) {
       setTimeout(function() {
          no();
       }, 1000 * 10);
    });
 
    // 第二步: 调用实例的then方法做事情,这个then添加的方法会在承诺生效后执行
    p.then(
        () => console.log('十年到了,得准备钱了'),
        () => console.log('十年到了,该吃吃该花花,反正也没啥用')
    );

    // then方法后续还可以调用无数次,每次添加都不用修改上面的代码,相对而言维护起来比较方便
    p.then(
        () => console.log('十年到了,芳芳终于嫁给我了'),
        () => console.log('绝望将伴随我一生')
    );

    // 如果你觉得then每次写两个回调太墨迹,但是还想在失败的时候做一些处理,那么可以使用catch解决
    p.catch(
        () => console.log('绝望将伴随我一生')
    );
    </script>

相关文章

  • 02_10.promise的初步使用

  • ChIPpeakAnno 注释peak

    # 1. 初步使用 运行下面几行代码,初步了解ChIPpeakAnno使用 # 1. 详细例子 ChIPpeakA...

  • Ajax的初步使用

    Ajax的初步使用 定义(来自MDN) (异步JavaScript和XML)Asynchronous JavaSc...

  • UISearchController 的初步使用

    好久没有写 iOS 基本控件的使用了,因为工作越来越偏向于底层和协调沟通。昨天抽空学习了一下 UISearchCo...

  • rac的初步使用

    1、RACSignal // 只要订阅者调用sendNext,就会执行nextBlock // 只要订阅RACD...

  • Docker的初步使用

    在安装Docker之前,首先需要先更新apt,安装CA证书,因为访问Docker用的是https协议 添加新的GP...

  • RACCommand的初步使用

    RACCommand 是一个在 ReactiveCocoa 中比较复杂的类,大多数使用 ReactiveCocoa...

  • etcd的初步使用

    简介 etcd是一个golang编写的分布式、高可用的一致性键值存储系统,用于提供可靠的分布式键值(key-val...

  • ToolBar的初步使用

    android.support.v7.widget.Toolbar的针对于Activity的用法 1、配置Tool...

  • DBFlow的初步使用

    前言 最近刚好有点时间,就想重温一下 Android 数据库的相关知识。以前一直使用 GreenDao,感觉操作...

网友评论

      本文标题:02_10.promise的初步使用

      本文链接:https://www.haomeiwen.com/subject/muwzmxtx.html