• 关于Promise的记录和理解


    在JavaScript中,所有的代码都是单线程执行的,这就导致了其所有的网络请求,IO操作,浏览器时间等都是异步非阻塞的模式执行的,这就使得代码的执行顺序可能会超出我们的掌控。

    尤其是当多个异步操作待执行,我们需要控制它的顺序的时候。这时一般的解决方法是回调,Generator,Promise或者await/async等,这里我主要记录Promise。

    Promise本质上是一个绑定了回调的对象,把执行代码和结果代码清晰的分离了。

    一个Promise对象大致有三个状态 :

    • pending: 初始状态,既不是成功,也不是失败状态。
    • fulfilled: 操作成功完成。
    • rejected: 操作失败。

    then函数其实有两个回调函数successCallback和failureCallback。前者是成功时的回调,后者是失败时的回调,一般情况下我们只用了第一个successCallback回调,失败状态靠catch来捕捉,其实本质上catch(failureCallback) 是 then(null, failureCallback)的缩写,那么可以知道,这两者在大部分情况下都相等,但在比如当successCallback中抛出了错误,此时第二个回调failureCallback是捕捉不到的,而catch可以。

    在一个catch(即失败操作)触发后,并不影响后续的链式操作。

    后续未完......

  • 相关阅读:
    day38_css
    day39_css_浮动_display
    day36_html
    线段树模板2 洛谷p3373
    hdu1257 最少拦截系统
    树的重心(DFS)
    树的直径(BFS)
    面向对象复习
    面向对象练习题
    面向对象的交互
  • 原文地址:https://www.cnblogs.com/JJCHEHEDA/p/9715952.html
Copyright © 2020-2023  润新知