JavaScript高级(十五)----promise.all

 Promise.all方法使用场景

例如:用户点击按钮,会向服务器请求数据,但是数据分别是不同的后端接口获取的数据,需要展示在一个span中
如果用户还没请求完成 则span会显示加载中...
等待两个后端接口都返回了数据 才会将数据展示在span 中
   <div class="content">
      <button class="btn">开始请求多组数据</button>
      <span class="text"></span>
   </div>


    const btn = document.querySelector('.btn');
    const text = document.querySelector('.text');

    // 请求数据的接口1
    function getData1() {
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          return resolve('getData1')
        }, 1000)
      })
    }

    // 请求数据的接口2
    function getData2() {
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          return resolve('getData2')
        }, 3000)
      })
    }

    btn.addEventListener('click', async () => {
      // 如果用户还没请求完成 则span会显示加载中
      text.innerHTML = '加载中.....'

      try {
        const res1 = await getData1();
        const res2 = await getData2();
        Promise.all([res1, res2])
          // 如果向后端请求的数据 全部请求成功 则把数据渲染到页面上
          .then(res => {
            let strHtml = '';
            res.forEach(item => strHtml += item)
            text.innerHTML = strHtml;
          })
      } catch (err) {
        // 如果reject被执行 会到 catch里面来 .. 可以执行相应的代码
        text.innerHTML = `某个接口请求失败,数据无法渲染`;
        console.log('某一个后端接口请求失败', err)
      }
    })

Promise.all

  • 接收的是数组,得到的结果也是数组,并且一一对应,也可以理解为Promise.all照顾跑的最慢的,最慢的跑完才结束。
  • 只有当所有 Promise 实例都变成 fulfilled 状态,新 Promise 的状态才是 fulfilled 状态,返回所有 promise 实例的 resolve value 数组。
  • 如果有一个 Promise 实例状态是 rejected 状态,则新 Promise 的状态是 rejected,返回第一个 promise reject 的 reason。
  • 这样我们可以取到不同接口的所有数据。
  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: jsrsasign-all-min.js 是一个用于处理证书和加密的 JavaScript 库。它可以用于获取和解析证书的各种信息。 首先,你需要在 HTML 页面中引入 jsrsasign-all-min.js 脚本文件。通过以下代码将库引入到页面中: <script src="jsrsasign-all-min.js"></script> 接下来,你可以使用 jsrsasign-all-min.js 提供的方法来获取证书信息。下面是一些示例代码: 1. 获取证书的 Subject 和 Issuer: var cert = new X509(); cert.readCertPEM(certPEM); // 这里的 certPEM 是证书的 PEM 格式 var subject = cert.getSubjectString(); // 获取证书的 Subject var issuer = cert.getIssuerString(); // 获取证书的 Issuer 2. 获取证书的有效期: var notBefore = cert.getNotBefore(); // 获取证书的生效日期 var notAfter = cert.getNotAfter(); // 获取证书的失效日期 3. 获取证书的公钥信息: var publicKey = cert.getPublicKey(); // 获取证书的公钥对象 var publicKeyInfo = publicKey.subjectPublicKeyRSA; // 获取公钥的信息 4. 获取证书的扩展信息: var extInfo = cert.getExtInfo(); // 获取证书的扩展信息 以上是一些常用的方法来获取证书信息的示例。根据你的需求,你可以根据 jsrsasign-all-min.js 提供的其他方法来获取更详细的证书信息。 ### 回答2: jsrsasign-all-min.js 是一个用于处理与证书相关操作的 JavaScript 库。它提供了一套功能强大的API,以便获取和处理证书信息。 使用 jsrsasign-all-min.js,我们可以方便地获取证书的各种信息。首先,我们需要加载 jsrsasign-all-min.js 文件到我们的网页中。然后,通过调用库中的函数,我们可以轻松地获取证书的公钥、私钥、签名等信息。 例如,通过调用 `X509` 类的 `getPublicKey` 方法,我们可以获取证书的公钥。该方法返回一个包含公钥信息的对象,我们可以进一步提取公钥的算法、模数等具体信息。 类似地,通过调用 `X509` 类的 `getCertificate` 方法,我们可以获取证书的各种其他信息。该方法返回一个包含证书信息的对象,我们可以进一步提取证书的签发者、有效期、序列号等详细信息。 除了获取证书信息,jsrsasign-all-min.js 还提供了其他功能,比如验证证书的有效性、生成新的证书等等。通过进一步研究文档和示例代码,我们可以更好地了解和应用这个 JavaScript 库。 总之,jsrsasign-all-min.js 提供了一套方便的API,用于获取和处理证书信息。通过调用相应的函数,我们可以轻松地获取证书的各种具体信息,以及进行其他证书相关的操作。 ### 回答3: jsrsasign-all-min.js是一个用于处理加密和解密操作的JavaScript库,其中包含了一些方法可以用来获取证书信息。 在使用jsrsasign-all-min.js库之前,首先需要引入该库到你的HTML文件中,例如: ```html <script src="jsrsasign-all-min.js"></script> ``` 然后,你可以使用jsrsasign-all-min.js库中的X509类来获取证书信息。下面是一个简单的示例: ```javascript // 从证书文件加载证书 var cert = new X509(); cert.readCertPEM(fileContent); // 获取证书的主题信息 var subject = cert.getSubjectString(); console.log("证书主题:" + subject); // 获取证书的颁发者信息 var issuer = cert.getIssuerString(); console.log("证书颁发者:" + issuer); // 获取证书的有效期 var notBefore = cert.getNotBefore(); var notAfter = cert.getNotAfter(); console.log("证书有效期:" + notBefore + " - " + notAfter); // 获取证书的公钥信息 var publicKey = cert.getPublicKey(); console.log("证书公钥:" + publicKey); // 获取证书的指纹(摘要) var thumbprint = cert.getThumbprintHex(); console.log("证书指纹:" + thumbprint); ``` 以上代码示例展示了如何使用jsrsasign-all-min.js库中的X509类获取证书的主题、颁发者、有效期、公钥和指纹等信息。根据你的需求,你可以根据X509类提供的其他方法获取更多的证书信息。 需要注意的是,以上示例仅提供了基本的方法,具体使用方法还需要根据你的具体需求来调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值