promise 是为了解决异步操作的顺序问题而产生的

特性  

  promise 的实例一旦创建就会执行里面的异步操作

  promise 的实例状态一旦改变就变成凝固的了, 无法再对其作出修改,  (不明白为什么如此设计)

  then 方法在所有的同步脚本执行完成之后才会执行

  promise 会吞掉错误, 也就是内部的错误不影响外部的

  在 primise中嵌套 promise, 里面的执行时间决定外面的执行时间

  多个 then 是同步执行的, 后面的 then 会等待前面 then 的执行完成

实例方法

  then 执行回调操作

  catch 捕获错误, 应该就是处理错误的语法糖

  finally 不论如何总是会执行的, 是 then 的特例

类(静态)方法

   Promise.all  接受一个promise 实例的数组, 其结果依赖于数组中实例的状态, 都是 resolve的时候, promiseAll 实例才是 resolve

  Promise.race 也是接受一个 promise 实例数组, 谁第一返回结果, 谁就决定 promiseAll的状态

  Promise.resolve 把一个非 promise 对象转化为 promise 对象,

  Promise.reject, 真没发现这个方法有啥存在的必要

  Promise.try 可以让同步函数同步执行, 异步函数异步执行

  Promise.catch 可以同时捕获同步和异步错误

  

  

  

promise 的学习的更多相关文章

  1. JavaScript 标准内置对象Promise使用学习总结

    Javascript标准内置对象Promise使用学习总结   by:授客 QQ:1033553122 1.   基础用法 var condition = true; let p = new Prom ...

  2. JavaScript中 Promise的学习以及使用

    今天一个哥们发过来一段js代码,没看懂,就顺便学习了一下,代码如下  Promise.resolve('zhangkai').then(value => {console.log(value)} ...

  3. Promise 基础学习

    Promise 是ES6的特性之一,采用的是 Promise/A++ 规范,它抽象了异步处理的模式,是一个在JavaScript中实现异步执行的对象. 按照字面释意 Promise 具有"承 ...

  4. promise的学习心得记录

    这里只讲promise,和async的使用方法,不会讲他们的原理. Promise 是异步编程的一种解决方案,可以用于取代传统的回调函数,该变那些函数层层嵌套调用的尴尬局面. 1)promise 基本 ...

  5. promise的学习

    为了解决回调地狱的问题,所以出现了promise的设计思想. promise的三种状态: pending 等待状态 resolved 完成状态 rejected 拒绝状态 promise的三种状态,只 ...

  6. Javascript Promise对象学习

    ES6中的Promise对象 var p = new Promise(function(resolve, reject){ window.setTimeout(function(){ console. ...

  7. ES6的promise的学习

    1.Promise的含义: Promise是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大.它由社区最早提出和实现,ES6将其写进了语言标准,统一了用法,原生提供了Pro ...

  8. [javascript] Promise简单学习使用

    原文地址:http://www.cnblogs.com/dojo-lzz/p/4340897.html 解决回调函数嵌套太深,并行逻辑必须串行执行,一个Promise代表一个异步操作的最终结果,跟Pr ...

  9. JavaScript Promise的学习笔记

    首先声明:本人今天刚接触Promise,通过一个例子,希望能更好的来理解,如果有不对的地方,还望指正 Promise是专门为解决 js中回调而引起的各种问题,而产生的. 在异步编程中,我们经常使用回调 ...

随机推荐

  1. java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils

    ♦ 问题所在:项目lib包里少一个jar包 ♦ 解决办法: commons-lang3-3.1.jar 导入到项目就ok

  2. Android串口通信(Android Studio)

    gilhub上已有开源项目: https://github.com/cepr/android-serialport-api 可以直接使用

  3. 史上最明白的 NULL、0、nullptr 区别分析(老师讲N篇都没讲明白的东东),今天终于明白了,如果和我一样以前不明白的可以好好的看看...

    C的NULL 在C语言中,我们使用NULL表示空指针,也就是我们可以写如下代码: int *i = NULL; foo_t *f = NULL; 实际上在C语言中,NULL通常被定义为如下: #def ...

  4. Laravel -- 邮箱功能配置问题

    ```` 今天碰到了这块的问题,还是记一下 ```` 关于邮箱: 品牌:腾讯qq.网易163 等 种类:个人.企业 邮箱服务器种类 配置教程 https://jingyan.baidu.com/art ...

  5. 在 VsCode 中自定义代码补全

    前言 之前公司的 Vscode 折腾成功过,如今给自己家装一个忘记怎么定义了,故回忆一下写个博文记录 代码补全顾名思义就是输入一两个字母自动提示相关的联想操作,由于VsCode非常精简所以很多联想没有 ...

  6. LinkedList阅读

    package java.util; import java.util.function.Consumer; public class LinkedList<E> extends Abst ...

  7. Java:Spring @Transactional工作原理

    本文将深入研究Spring的事务管理.主要介绍@Transactional在底层是如何工作的.之后的文章将介绍: propagation(事务传播)和isolation(隔离性)等属性的使用 事务使用 ...

  8. Constructing continuous functions

    This post summarises different ways of constructing continuous functions, which are introduced in Se ...

  9. 关于pyCharm专业版的破解方法

    用pycharm编写自动化脚本时,pycharm专业版的使用期限只有30天, 找到了pycharm破解方法. 破解码:{"licenseId":"145446792566 ...

  10. pyqt pyside 设置窗口关闭时删除自身

    pyqt pyside 设置窗口关闭时删除自身 self.setAttribute(QtCore.Qt.WA_DeleteOnClose)