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. LeetCode第十题-正则表达式匹配

    Regular Expression Matching 问题简介:给定字符串,给定匹配模式,判断字符串是否满足匹配模式 问题详解:一共有两种特殊模式: ‘.’ 匹配任何单个字符 ‘*’ 匹配前面元素的 ...

  2. [转] Python 字符编码判断

    转自:http://www.cnblogs.com/dkblog/archive/2011/03/02/1980644.html 法一: isinstance(s, str) 用来判断是否为一般字符串 ...

  3. JavaWeb - apache和tomcat是如何配合工作的

    ref: https://jingyan.baidu.com/article/47a29f246f354ec0142399dc.html 网上有很多的介绍apache和tomcat的区别,但大部分都是 ...

  4. MySQL问题汇总

    1.中文乱码 连接设置: 数据库设置:

  5. JAVA 得到数组的长度

    package Code411; //得到数组的长度// 使用 array.length public class CodeArrayLength { public static void main( ...

  6. 经测试,foreach循环比linq的效率高

  7. php判断浏览器还是微信打开

    本人亲测,但是存在一个小问题,就是用此方法在手机端打开会显示Google Chrome,但是在PC端是没有问题的,现在还在测试,先把第一版代码分享给大家! if(strpos($_SERVER['HT ...

  8. 学习笔记: yield迭代器

    yield 与 IEnumerable<T> 结对出现, 可实现按需获取 , 迭代器模式 static void Main(string[] args)         {         ...

  9. [转] 微信小程序之生命周期

    本篇文章介绍小程序的生命周期,由于小程序分为应用和页面两个部分,所以小程序的生命周期就涉及到三个部分,分别是: 应用的生命周期 页面的生命周期 应用的生命周期对页面生命周期的影响 一.应用的生命周期 ...

  10. 百度上传插件---webuploader的使用

    需求:朋友让找一个兼容IE8的上传插件,卧槽,IE8,我当时是崩溃的,然后就搜到了这个百度的插件,官网是这样描述的 WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HT ...