含义
Promise是异步编程的一种解决方案。

Promise对象有以下2个特点:
1.对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:**Pending(进行中)、Resolved(已完成)和Rejected(已失败)。**只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是Promise这个名字的由来,它的英语意思就是“承诺”,表示其他手段无法改变。
2.一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise对象的状态改变,只有两种可能:从Pending变为Resolved;从Pending变为Rejected。只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果。就算改变已经发生了,你再对Promise对象田静回调函数,也会立即得到这个结果。这与事件(Event)完全不同,事件的特点是,如果你错过了它,再去监听,是得不到结果的。

有了Promise对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。

Promise构造函数有俩参数: resolve reject
2.用法

function runAsync1(){ var p = new Promise(function(resolve, reject){ //做一些异步操作 setTimeout(function(){ console.log('异步任务1执行完成'); resolve('随便什么数据1'); }, 2000); }); return p; } function runAsync2(){ var p = new Promise(function(resolve, reject){ //做一些异步操作 setTimeout(function(){ console.log('异步任务2执行完成'); resolve('随便什么数据2'); }, 2000); }); return p; } function runAsync3(){ var p = new Promise(function(resolve, reject){ //做一些异步操作 setTimeout(function(){ console.log('异步任务3执行完成'); resolve('随便什么数据3'); }, 2000); }); return p; } runAsync1() .then(function(data){ console.log(data); return runAsync2(); }) .then(function(data){ console.log(data); return runAsync3(); }) .then(function(data){ console.log(data); });
每隔两秒执行
它们是层层依赖的关系,下一步的的操作需要使用上一部操作的结果。(这里使用 setTimeout 模拟异步操作)
使用 then 链式调用这三个方法

异步加载图片

function loadImageAsync(url){return new Promise(function(resolve,reject){var image = new Image();image.onload = function(){resolve(image);};image.onerror = function(){reject(new Error('Could not load image at' + url));};image.src = url;});
}


resolve(this.response);//会将参数传递给回调函数
then方法可以接受两个回调函数作为参数,第一个回调函数是promise对象状态变为resolved时候调用,第二个回调函数是promise对象的状态为reject时调用

Promise的含义和用法相关推荐

  1. 前端异步编程之Promise和async的用法

    传统的异步解决方案采用回调函数和事件监听的方式,而这里主要记录两种异步编程的新方案: ES6的新语法Promise ES2017引入的async函数 Generator函数(略) Promise的含义 ...

  2. es6 Promise 的含义

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

  3. 转: ES6异步编程:Thunk函数的含义与用法

    转: ES6异步编程:Thunk函数的含义与用法 参数的求值策略 Thunk函数早在上个世纪60年代就诞生了. 那时,编程语言刚刚起步,计算机学家还在研究,编译器怎么写比较好.一个争论的焦点是&quo ...

  4. java this$0_java中this$0的含义及用法

    java中this$0的含义及用法 (2012-01-19 22:43:33) 标签: 杂谈 java中this$0的含义及用法,具体case是这样的: 通过测试工具去探测界面UI上的控件FlatBu ...

  5. Java中static的含义和用法

    Java中static的含义和用法 static:静态的,用于修饰成员(成员变量,成员方法); 1.被static所修饰的变量或者方法会储存在数据共享区; 2.被static修饰后的成员变量只有一份! ...

  6. Linux中 C++ main函数参数argc和argv含义及用法

    Linux中 C++ main函数参数argc和argv含义及用法 简介 argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vecto ...

  7. xstream中几个注解的含义和用法(转)

    XStream是个很强大的工具,能将Java对象和xml之间相互转化.xstream不在意java类中成员变量是私有还是公有,也不在乎是否有默认构造函数.它调用方式也非常简单:从xml对象转化为jav ...

  8. @aspect注解类不生效_Spring Boot从入门到精通(三)常用注解含义及用法分析总结...

    Spring Boot是目前非常流行的框架,而注解是Spring Boot的核心功能,接下来主要说一说Spring Boot常用注解的含义以及部分注解在项目中的使用方法. @RestControlle ...

  9. 计算机网络中tx和fx,100Base-TX/T4/FX以太网含义及用法

    100Base-TX/T4/FX以太网含义及用法 快速以太网目前制定的三种有关传输介质的标准之一,一种是100BASE-TX,另外两种是100BASE-T4.100BASE-FX.我们将"1 ...

  10. MATLAB中var函数,mean函数的含义及用法详细解释

    MATLAB中var函数,mean函数的含义及用法详细解释 var函数语句 我们先来看var函数,MATLAB命令窗输入help var ,可以得到用到方差函数Syntax有: V = var(X); ...

最新文章

  1. 舞蹈 | 拉丁美洲的节奏
  2. Balanced Ternary String
  3. 初识 scrapy 框架 - 安装
  4. app中使用用户名/邮箱/手机号登录的思路分析
  5. 云计算实战系列-磁盘阵列
  6. 数据在数组中存储的顺序:小端 OR 大端模式 详解
  7. treelistview 所有节点失去焦点_球天下-儿皇梦只是一厢情愿 皇马已失去对博格巴的兴趣...
  8. 【数字全排列】LeetCode 31. Next Permutation
  9. [渝粤教育] 西南科技大学 经济法学 在线考试复习资料(1)
  10. 讨论一下hibernate如何动态注册一个动态生成的实体类
  11. 最新版easyMule-VeryCD-src v1.1.13编译
  12. 北京各区优质高中排名
  13. matlab四叉树分割代码,【测绘专用】 MATLAB 四叉树分割遥感图像
  14. 回归模型效果评估系列3-R平方
  15. 招聘:赴微软工作SharePoint技术专家(V-,北京)
  16. 深度学习epochs、batch、batch_size和iteration的区分
  17. 2012考研计划时间安排表
  18. 名帖128 成亲王 楷书《心经》册
  19. Jeecgboot-Vue3 v1.2.0 版本正式发布,企业级低代码平台
  20. word表格合并单元格后,光标居中

热门文章

  1. 央行征信中心:第二代个人征信系统将于1月20日上线
  2. LiLeiHanMeiMei的隐式马尔可夫爱情
  3. ogre研究之第一个程序
  4. 淘宝七天自动确认收货,怎么设计?RabbitMQ延迟队列,消息延迟推送delayed_message入门教程!
  5. IE11 zh_HANS_CN国际化问题
  6. 普华集团翟山鹰:金融激荡30年 深度洞察金融的“奥秘”
  7. 关于无线网卡驱动更新后无法使用(错误代码43)的问题
  8. 使用OpenSSL库接口,实现AES CBC加密,基于X509 base64编码证书的RSA非对称加密例子
  9. MALLOC_PERTURB_ 环境变量
  10. 学习推荐书籍--C语言