当前位置: 首页 > news >正文

网站开发工程师培训班产品推广公司

网站开发工程师培训班,产品推广公司,网站开发案例详解下载,渭南市网站建设第一次学的时候没学牢固 后面意识到promise的重要性之后 陆陆续续的看、查&#xff0c;终于在今天 感觉好像明白点了 把自己敲的理解分享给大家 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name&…

第一次学的时候没学牢固

后面意识到promise的重要性之后  陆陆续续的看、查,终于在今天 感觉好像明白点了

把自己敲的理解分享给大家

 

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>promise</title>

</head>

<body>

  <script>

    // "use strict"  严格模式下  函数内this为undefined

    // console.log(this);

    // function myFunction() {

    //   return this;

    // }

    // promise三个状态  pending初始  fulfilled成功  rejected失败

    // 构造promise对象时候 传入的参数是一个函数 函数中接收两个参数

    // resolve reject 都是函数 作用大概可以理解为

    // 执行resolve时 把promise的状态从初始变成成功 promise状态变成fulfilled 执行.then方法  

    // then方法接受的参数也是一个函数 函数中携带一个参数 参数是resolve(res)返回的数据

    // 执行reject时 把promise的状态从成功变成失败 promise状态变成rejected 执行catch方法

    // catch方法接受的也是一个函数 函数中携带一个参数 该参数为reject(err)返回的数据

    // promise的状态变化只有两条线 初始到成功或者初始到失败  状态一旦固定 就不会再发生改变

    // 以下代码易证上述观点

    const p = new Promise((resolve, reject) => {

      resolve('成功且执行.then')

      reject('失败且执行.catch')

    })

    p.then((res) => { console.log(res) }).catch((err) => { console.log(err); })

    // 以下代码为promise的链式调用

    const pp = new Promise((resolve, reject) => {

      setTimeout(() => {

        resolve('a')

      }, 1000)

    }).then(res => {

      // console.log('res1', res);

      return new Promise((resolve, reject) => {

        setTimeout(() => {

          resolve(res + 'a')

        }, 1000)

      }).then(res => {

        // console.log('res2', res);

        return new Promise((resolve, reject) => {

          setTimeout(() => {

            resolve(res + 'a')

          }, 1000)

        })

      }).then(res => {

        // console.log('res3', res);

      })

    })

    // 有些多余 看看如何简写使之优雅

    // reject 如果不需要处理失败结果时 我们可以省略掉reject

    const ppp = new Promise(resolve => {

      resolve('a')

    }).then(res => {

      // console.log('res4', res);

      return new Promise(resolve => { resolve(res + 'a') })

    }).then(res => {

      // console.log('res5', res);

      return new Promise(resolve => { resolve(res + 'a') })

    }).then(res => {

      // console.log('res6', res);

    })

    // Promise 嵌套使用时 内层的Promise可以省略不写 所以我们可以直接把Promise相关的去掉 直接返回

    const pppp = new Promise(resolve => {

      resolve('a')

    }).then(res => {

      // console.log('res4', res);·

      return res + 'a'

    }).then(res => {

      // console.log('res5', res);

      return res + 'a'

    }).then(res => {

      // console.log('res6', res);

    })

    // 再来简写个reject参数的promise链式调用

    const pppppp = new Promise((resolve, reject) => {

      reject('a')

    }).catch(err => {

      // console.log('err1', err);

      return new Promise((resolve, reject) => reject(err + 'a'))

    }).catch(err => {

      // console.log('err2', err)

      return new Promise((resolve, reject) => reject(err + 'a'))

    }).catch(err => {

      // console.log('err3', err);

    })

    // 再把嵌套使用内层promise简化一下 把resolve去一下  注意  如果简化内层promise 需要将return换成throw

    const ppppppp = new Promise((resolve, reject) => {

      reject('a')

    }).catch(err => {

      // console.log('err1', err);

      throw err + 'a'

    }).catch(err => {

      // console.log('err2', err)

      throw err + 'a'

    }).catch(err => {

      // console.log('err3', err);

    })

    // promise的all方法

    // promise.all方法 提供并行执行异步操作的能力 在所有异步操作完成之后 同意返回所有的结果 具体使用如下

    // 重点是所有的异步操作完成之后

    Promise.all(

      [

        new Promise(resolve => { resolve('ac') }),

        new Promise(resolve => { resolve('bv') })

      ]

    ).then(res => {

      console.log('all', res);

    })

    // all 接收到的是一个Promise实例化对象数组 数组长度取决于 Promise实例化对象的个数。

    // 一般用于一些游戏类的素材比较多的应用,打开网页时,预先加载需要用到的各类资源,所有的都加载完后,再进行页面的初始化。

    // promise的race方法

    // 他的使用和all一样 返回结果不同 他是返回执行最快的那个promise

    Promise.race(

      [

        new Promise(resolve => {

          setTimeout(() => { resolve('快的') }, 100)

        }),

        new Promise(resolve => {

          setTimeout(() => { resolve('慢的') }, 300)

        })

      ]

    ).then(res => {

      console.log('race', res);

    })

  </script>

</body>

</html>

大家最好跟着敲一下  因为确实迷糊  跟着敲 体会可能还好点

如果这些代码能对诸位有些许帮助 我会不胜荣幸

http://www.yidumall.com/news/43725.html

相关文章:

  • 自己做的视频网站视频加载慢优化网站教程
  • 网站服务器建设电商平台链接怎么弄
  • 网站建设维护费合同谷歌是如何运营的
  • 邵东做网站的公司seo课程总结怎么写
  • 新闻静态网站模板网页seo搜索引擎优化
  • 嘉兴网站建设咨询百度客服怎么联系
  • 上海发布公众号下载安装廊坊百度快照优化哪家服务好
  • xampp wordpress 花生壳厦门seo管理
  • 玉环哪里有做网站精准拓客软件哪个好
  • 网站建设实习小结关键词优化排名软件哪家好
  • wordpress 分享微信 插件厦门seo优
  • 南昌网站搭建公司 赣ICPseo入口
  • 做第三方的qq互联接口时_回调到自己的网站时要延时很久是什么原因seo优化是做什么的
  • 知名网站建设公司 北京国外产品推广平台
  • 凡科是免费做网站吗网店推广的重要性
  • 制作b2c网站估价广州seo优化电话
  • 怎么利用网站做cpa推广网站改版seo建议
  • 长沙优化网站排名智慧教育
  • 淘宝联盟怎么做网站推广草根seo博客
  • 苏州网站建设服务公司如何自己创建网站
  • 商务网站规划与建设课设的项目需求seo如何优化一个网站
  • 海尔网站推广策划方案刷粉网站推广便宜
  • offic做网站的软件chrome官网
  • 比较大网站建设公司阿里云域名查询
  • zblog做企业网站好吗怎么做一个网站平台
  • 用table做网站同城广告发布平台
  • 开发公司没有资质有什么影响萧山市seo关键词排名
  • 如何建立网站教程合肥网站优化技术
  • 支付功能网站建设引流推广的句子
  • wordpress缩写是什么意思优化落实疫情防控新十条