为了账号安全,请及时绑定邮箱和手机立即绑定

Promise 入门

Meathill Web前端工程师
难度中级
时长 2小时 0分
学习人数
综合评分8.87
73人评价 查看评价
9.1 内容实用
8.9 简洁易懂
8.6 逻辑清晰
  • Promise.resolve()

        返回一个fulfilled的Promise实例,或原始Promise实例。

        参数为空,返回一个状态为fulfilled的Promise实例

        参数时一个跟Promise无关的值,同上,不过fulfuilled响应函数会得到这个参数

        参数为Promise实例,则返回该实例,不做任何修改

        参数为thenable,立刻执行它的.then()

    查看全部
    0 采集 收起 来源:Promise.resolve

    2021-04-23

  • 实现队列

        有时候我们不希望所有动作一起发生,而是按照一定顺序,逐个进行。

        常见错误:1.没有把.then()产生的新Promise实例赋值给promise,没有生成队列。

                        2.Promise实例创建之后,会立刻运行执行器代码,所以这个也无法达成队列的效果。

    查看全部
    0 采集 收起 来源:实现队列

    2021-04-23

  • Promise其他常用函数,Promise.all()

        批量执行

            Promise.all([p1,p2,p3,...])用于将多个Promise实例,包装成有一个新的Promise实例。

            返回的实例就是普通的Promise

            接受一个数组作为参数。

            数组里可以是Promise对象,也可以是别的值,只有Promise会等待状态改变。

            当所有子Promise都完成,该Promise完成,返回值是全部值得数组。

            有任何一个失败,该Promise失败,返回值是第一个失败的子Promise的结果。

    查看全部
    0 采集 收起 来源:Promise.all

    2021-04-23

  • catch 也会返回一个Promise实例, 如果没有抛出错误,返回的实例也是成功状态的,所以接下来的then都会被执行

      注意: 强烈建议在所有队列最后都加上.catch(),以避免漏掉错误处理造成意向不到的问题。

    查看全部
    0 采集 收起 来源:错误和then连用

    2021-04-23

  • 错误处理的两种做法:

        reject('错误信息').then(null,message=>{])

        throw new Error('错误信息').catch(message=>{})

    推荐使用第二种,更加清晰好读,并且可以捕获前面的错误。

    查看全部
    0 采集 收起 来源:错误处理

    2021-04-23

  • 错误处理

        Promise会自动捕获内部异常,并交给rejected响应函数处理。

        如果在Promise的执行器里面发生了错误,状态就会切换为rejected,那个后面的成功响应函数就不会执行,后面捕获错误的catch函数就会被执行

    查看全部
    0 采集 收起 来源:错误处理

    2021-04-23

  • .then()里有.then()的情况

        因为.then()返回的还是Promise实例。

        会等里面的.then()执行完,在执行外面的。

        对于我们来说,此时最好将其展开,会更好读。

    查看全部
    0 采集 收起 来源:then 的嵌套

    2021-04-22

  • .then()

    .then()接受两个函数作为参数,分别代表fulfilled和rejected

    .then()返回一个新的Promise实例,所以它可以链式调用

    当前面的Promise状态改变时,.then()根据其最终状态,选择特定的状态响应函数执行

    状态响应函数可以返回新的Promise,或其他值

    如果返回新的Promise,那么下一级.then()会在新Promise状态改变后执行

    如果返回其他任何值,则会立刻执行下一级.then()

    查看全部
    0 采集 收起 来源:引出 .then()

    2021-04-22

  • Promise 详解

            Promise是一个代理对象,它和原先要进行的操作并无关系   

            它通过引入一个回调, 避免更多的回调

            Promise状态发生改变,就会触发.then()里的响应函数处理后续步骤。

            Promise状态一经改变,不会再改变

    Promise 有3个状态:

        pending 待定 初始化状态

        fulfilled 实现 操作成功

        rejected 被否决 操作失败



    Promise实例一经创建,执行器立即执行。

        


         

    查看全部
    0 采集 收起 来源:Promise 简介

    2021-04-22

  • 异步回调的问题

            ”回调地狱“

            更深层次的问题:假设需求

                遍历目录,找出最大的一个文件。



            回调有四个问题:

                嵌套层级很深,难以维护。

                无法正常使用return和throw

                无法正常检索堆栈信息

                多个回调之间难以建立联系

    查看全部
  • 为什么需要Promise  

                        JavaScript为检查表单而生。

                        创造它的首要目标是操作DOM。

                        所以,javaScript的操作大多是异步的。

                        同步任务:顺序交付的工作1234,必须按照1234的顺序完成。

                        异步,则是将耗时很长的A交付的工作交给系统之后,就去继续做B交付的工作。等到系统完成前面的工作之后,再通过回调或者事件,继续做A剩下的工作。

                        从观察者的角度看起来,AB工作的完成顺序,和交付他们的时间顺序无关,所以叫“异步”。

    浏览器中的js

            异步操作以事件为主

            回调主要出现在Ajax和File API

            这个时候问题尚不算严重

    Node.js

            无阻塞高并发,是Node.js的招牌

            异步操作是其保障。

            大量操作依赖回调函数。

    查看全部
  • Promise 对象用于异步计算

    一个Promise表示一个现在、将来或永不可能可用的值。

    按照用途来解释:主要用于异步计算

                            可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果。

                            可以在对象之间传递和操作Promise,帮助我们处理队列。

    查看全部
    0 采集 收起 来源:Promise 释义

    2021-04-22

  • 经典

    查看全部
    0 采集 收起 来源:随堂小测试

    2021-03-19

  • promise.race()

    http://img1.sycdn.imooc.com//602ca12b000121cd11070514.jpg

    查看全部
    0 采集 收起 来源:Promise.race-

    2021-02-17

  • promise.race()

    http://img1.sycdn.imooc.com//602ca0ac00011e7710400254.jpg

    查看全部
    0 采集 收起 来源:Promise.race-

    2021-02-17

举报

0/150
提交
取消
课程须知
1. 前端水平:初级、中级 2. 了解 JavaScript 3. 最好有异步开发经历,希望写出更好的代码
老师告诉你能学到什么?
1. Promise 的基础用法 2. Promise 容易出错的地方 3. Promise 怎么处理错误(Error) 4. Promise 的其它用法 5. 简单介绍异步函数

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!