最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • (学习笔记)浏览器工作原理与实践之Promise

    正文概述 掘金(zppsakura)   2020-12-02   544

    Promise解决了什么问题?

    Promise解决的是异步编码风格的问题,而非其他问题

    产生回调地狱的原因是什么?

    • 嵌套调用,下面的任务依赖上个任务的请求结果,并在上个任务的回调函数内部执行新的业务逻辑,当嵌套层次多了之后,代码的可读性就变得很差。

    • 任务的不确定性,执行每个任务都有两种可能的结果(成功或者失败),所以体现在代码中就需要对每个任务的执行结果做两次判断,这种对每个任务都要进行一次额外的错误处理方式明显增加代码的混乱程度。

    Promise如何解决回调地狱?

    • 消灭嵌套调用
      • Promise实现了回调函数的延时绑定
      • 将回调函数onResolve的返回值穿透到最外层
    • 合并多个任务的错误处理

    Promise如何处理异常?

    是因为 Promise 对象的错误具有“冒泡”性质,会一直向后传递,直到被 onReject 函数处理或catch 语句捕获为止。具备了这样“冒泡”的特性后,就不需要在每个 Promise 对象中单独捕获异常了,而是将所有 Promise 对象的错误合并到一个函数来处理,这样就解决了每个任务都需要单独处理异常的问题。

    Promise中为什么要引入微任务?

    通过微任务可以让Promise中的onResolve延时被调用,还提升了代码的执行效率。

    Promise中是如何实现回调函数返回值穿透的?

    每次调用then的时候,都重新创建一个promise对象,并把上一个then的返回结果传给新的promise的then方法

    then的链式调用和值穿透性

    then的链式调用: 使用 Promise 的时候,当 then 函数中 return 了一个值,不管是什么值,我们都能在下一个 then 中获取到。

    值穿透性: 当我们不在then中放入参数,例promise.then().then(),那么其后面的then依旧可以得到之前then返回的值。


    起源地下载网 » (学习笔记)浏览器工作原理与实践之Promise

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元