美文网首页深入JavaScript
深入JavaScript Day19、20 - Promise、

深入JavaScript Day19、20 - Promise、

作者: 望穿秋水小作坊 | 来源:发表于2022-01-24 08:33 被阅读0次

    一、邂逅Promise

    1、【经典名句】新技术的出现都是为了什么?

    • 【新技术的出现,都是为了解决原有技术的某一个痛点】

    2、那么Promise在出现之前,旧的技术存在什么痛点?

    -【痛点】对于异步返回结果的常见代码,没有形成统一的思想和代码风格,编写和调用都变得比较费时费力

    • 旧的技术实现方案如下
    function requestData(url, successCallback, failtureCallback) {
      // 模拟网络请求
      setTimeout(() => {
        // 拿到请求结果
        //url传入的是coderwhy,请求成功
        if (url === "coderwhy") {
          // 成功
          let names = ["aaa", "bbb", "ccc"];
          successCallback(names);
        } else {
          // 失败
          let errMessage = "请求失败,url错误";
          failtureCallback(errMessage);
        }
      }, 3000);
    }
    
    requestData(
      "coderwhy",
      (res) => {
        console.log("拿到请求成功结果", res);
      },
      (err) => {
        console.log("拿到请求失败结果", err);
      }
    );
    
    • 比如上述代码中【successCallback】【failtureCallback】 可以放在任意位置,也可以叫任意名字,参数个数也任意;
    • 调用者无法一眼洞察函数的调用方式,以及后续的返回结果

    3、出现Promise之后,有什么优势?

    • Promise遵守了一套严格的规范,省去了接口调用人员查阅文档的时间
    • 使用者一看到返回Promise就知道如何使用该函数的,及其快速方便

    4、如果给Promise执行过程划分三个阶段,是哪三个?

    • 【pending】
    • 【resolved】
    • 【rejected】

    二、Promise的对象方法 then、catch、finally(只考虑常见问题)

    1、then有返回值(普通返回值)会怎么样?

    image.png

    2、catch有返回值会怎么样?

    image.png

    3、finally是什么效果?

    image.png

    三、Promise的类方法

    1、Promise.resolve() 用于什么场景?

    image.png

    2、Promise.reject() 用于什么场景?

    image.png

    3、Promise.all() 用于什么场景?

    image.png

    4、Promise.allSettled() 用于什么场景?

    image.png

    5、Promise.race() 用于什么场景?

    image.png

    6、Promise.any() 用于什么场景?

    image.png
    
    

    相关文章

      网友评论

        本文标题:深入JavaScript Day19、20 - Promise、

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