zoukankan      html  css  js  c++  java
  • ES6

    ​        在MDN文档中,Promise是一个对象,代表一个异步操作的最终完成或者失败。在网上大多ES6教程中,认为Promise是异步编程的一种解决方案,从语法上说是一个对象,从它可以获取异步操作的消息。

      

      了解promise的工作方式文档https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Using_promises

    内容提要:

    • 原理:本质上Promise是一个函数返回的对象,我们可以在它上面绑定回调函数,这样我们就不需要在一开始把回调函数作为参数传入这个函数了。
    • 拒绝事件:当 Promise 被拒绝时,会有已定义的两个事件(rejectionhandled,unhandledrejection)之一被派发到全局作用域
    • 链式调用:连续执行两个或者多个异步操作
    • 组合:Promise.all() 和 Promise.race() 是并行运行异步操作的两个组合式工具。
    • 时序:为了避免意外,即使是一个已经变成 resolve 状态的 Promise,传递给 then() 的函数也总是会被异步调用
    • 嵌套:简便的 Promise 链式编程最好保持扁平化
    • 常见错误

       Promise构造函数以及此类对象的方法和属性:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise

    内容提要:

    • Promise Constructor:构造函数主要是用于包装还未支持promises的函数
    • Promise的三种状态:pending, fulfilled, rejected
    • 方法
    • Promise原型
    • 创建Promise

      阮一峰的ES6教程: https://es6.ruanyifeng.com/#docs/promise

    内容提要:

    • Promise的含义
    • 基本用法:代码举例
    • then方法
    • catch方法
      • Promise 对象的错误具有“冒泡”性质
      • reject()方法的作用,等同于抛出错误
      • 一般来说,不要在then()方法里面定义 Reject 状态的回调函数(即then的第二个参数),总是使用catch方法
      • 如果没有使用catch()方法指定错误处理的回调函数,Promise 对象抛出的错误不会传递到外层代码,即不会有任何反应
    • finally方法:用于指定不管 Promise 对象最后状态如何,都会执行的操作
    • all方法:用于将多个 Promise 实例,包装成一个新的 Promise 实例
    • race方法:将多个 Promise 实例,包装成一个新的 Promise 实例 
    • allSettled方法:方法接受一组 Promise 实例作为参数,包装成一个新的 Promise 实例。只有等到所有这些参数实例都返回结果,不管是fulfilled还是rejected,包装实例才会结束。
    • any方法:只要参数实例有一个变成fulfilled状态,包装实例就会变成fulfilled状态;如果所有参数实例都变成rejected状态,包装实例就会变成rejected状态 
    • resolve方法
    • reject方法
    • 应用     
  • 相关阅读:
    3.springMVC参数绑定过程(页面向后台传参)
    2.springMVC入门程序
    1.理解springMVC的原理
    RTO
    DC Congestion Control
    docs for DC Network
    FCT和QCT
    下行TM
    上行TM
    调度与队列
  • 原文地址:https://www.cnblogs.com/jj81/p/13526558.html
Copyright © 2011-2022 走看看