关于promise的用法
promise是一个对象,里面保存着某个未来才会结束的事件,通常是一个异步事件。
promise对象的两个特点:
1.对象的状态不受外界影响:pending(进行中) fulfilled(已成功) rejected(已失败)
只有异步操作的结果可以决定当前状态,其他任何操作都无法改变这个状态
2.一旦状态改变发,就不会再变resolved(已定型),任何时候都可以得到这个结果。
状态改变只有两种可能: pending ==> fulfilled
pending ==> rejected
promise缺点:
1.一旦创建,无法中途取消
2.promise内部的报错,不会反映到外部
3.当处于pending状态时,不知道具体进展到哪一个阶段(刚刚开始还是即将完成)
promise是一个构造函数,用来生成promise实例。
promise构造函数接收函数作为参数,函数参数又接收两个函数作为参数
promise实例后,可以用then方法指定resolved和rejected两个回调函数
Promise.prototype.then() then方法是挂在Promise实例的原型链上,then返回的是一个新promise实例
promise对象改变状态,若为resolved则调用then中的第一个函数,若为rejected则调用第二个函数
const promise = new Promise(function (resolve, reject) {
......
if(){
resolve(value)
}else {
reject(error)
}
})
promise.then(function(value){ }, function(error){ })
Promise.prototype.catch() 可以捕获到promise内部的报错并向外部抛出异常,一般不用then()的第二个回掉函数,推荐使用catch()
Promise.prototype.finally()
不管状态如何,最后都会执行的操作;
finally的回调函数不接受任何参数
Promise.all()将多个 Promise 实例,包装成一个新的 Promise 实例。
每个promise实例都为fulfilled时,新的promise状态才为fulfilled;
只要有一个promise实例为rejected,新的promise状态就为rejected。
Promise.race()将多个 Promise 实例,包装成一个新的 Promise 实例。
Promise.resolve()将原有的对象返回一个新的 Promise 对象,状态为resolved
Promise.reject()将原有的对象返回为一个新的 Promise 实例,该实例的状态为rejected
Promise.try() 不管函数是同步的还是异步的,都用promise来处理函数,函数返回值是一个promise对象。
关于promise的用法的更多相关文章
- 简单谈谈js中Promise的用法
首先先推荐一篇博文:http://blog.csdn.net/jasonzds/article/details/53717501 这篇博文很清晰的说明了Promise的用法,这里来简单总结一下: Pr ...
- 整理一下Promise 的用法
Promise 的定义 Pormise是JS的异步编程的一种解决方案,在ES6将其写进了语言标准,提供了原生的Promise对象. Promise简单来理解就是一个容器,里面存放着某个未来才会结束的事 ...
- JavaScript异步与Promise基本用法(resolve与reject)
Promise解决的问题相信每个前端都遇到过这样一个问题,当一个异步任务的执行需要依赖另一个异步任务的结果时,我们一般会将两个异步任务嵌套起来,这种情况发生一两次还可以忍,但是发生很多次之后,就形成了 ...
- 理解并掌握Promise的用法
前沿: Promise在处理异步操作非常有用.项目中,与后端进行数据请求的时候经常要用到Promise.我们可以用promise + xhr进行ajax的封装.也可以使用基于promise封装的请求 ...
- [js高手之路] es6系列教程 - promise常见用法详解(resolve,reject,catch,then,all,race)
关于promise我在之前的文章已经应用过好几次,如[js高手之路]Node.js+jade+express+mongodb+mongoose+promise实现todolist,本文就来讲解下pro ...
- Promise的用法
promise.then().promise.catch().Promise.all()... Promise 构造函数接受一个函数作为参数,该函数的2个参数分别是 resolve 和 reject. ...
- ES6关于Promise的用法
Promise 对象用于一个异步操作的最终完成(或失败)及其结果值的表示.简单点说,它就是用于处理异步操作的,异步处理成功了就执行成功的操作,异步处理失败了就捕获错误或者停止后续操作. 它的一般表示形 ...
- ES6的promise函数用法讲解
总结:Promise函数的出现极大的解决了Js中的异步调用代码逻辑编写太过复杂的问题,Promise对象让异步调用函数的流程显得更加的优雅,也更容易编写. 举例: 1. 异步调用: 假设现在我的一个页 ...
- 入门Promise的用法
new Promise(function(resolve,reject){ resolve(); //数据处理完成 reject(); //数据处理出错 }).then(function A(){ / ...
- ES6关于Promise的用法详解
Node的产生,大大推动了Javascript这门语言在服务端的发展,使得前端人员可以以很低的门槛转向后端开发. 当然,这并不代表迸发成了全栈.全栈的技能很集中,绝不仅仅是前端会写一些HTML和一些交 ...
随机推荐
- 2.2_springboot2.x消息RabbitMQ整合&amqpAdmin管理组件的使用
5.1.1.基本测试 1.引 spring-boot-starter-amqp** <dependencies> <dependency> <groupId>org ...
- sklearn数据集划分
sklearn数据集划分方法有如下方法: KFold,GroupKFold,StratifiedKFold,LeaveOneGroupOut,LeavePGroupsOut,LeaveOneOut,L ...
- D3.js的基础部分之数组的处理 集合(Set)(v3版本)
数组的处理 之 集合(set) 集合(Set)是数学中常用的概念,表示具有某种特定性质的事物的总体.集合里的项叫做元素.集合的相关方法有: d3.set([array]) //使用数组来构建集合, ...
- 【第五周读书笔记】我是一只IT小小鸟
读了第一个同学的自述,我印象最深的就是一些高分同学,只是机械性地背诵知识点,然后不停刷题,只是为了拿一个高分,然而他们对学科的一些基本概念都没有掌握牢靠.高分,并不代表学的就好.学得好不仅仅要牢靠掌握 ...
- nodejs . module.exports
//utils.js let a = 100; console.log(module.exports); //能打印出结果为:{} console.log(exports); //能打印出结果为:{} ...
- C# 创建DataTable并添加行和列
DataTable dt=new DataTable dt.Columns.Add("numview", typeof(Int32)); dt.Columns.Add(" ...
- 【笔记篇】斜率优化dp(三) APIO2010特别行动队
旁听了一波给舒老师和学弟的pkuwc面试讲座... 这里有一段隐身的吐槽, 想看的请自己想办法观看. 不想看的跳过这一段看似空白的东西就好了... 刚开始ATP学姐给我们讲了自己面试的时候的事情..描 ...
- cacti ERROR: FILE NOT FOUND
Cacti 版本: 0.8a 在安装好 cacti之后,进入Settings -> Paths, 而且里面的路径在系统中都存在的,在这里显示ERROR: FILE NOT FOUND 参考1的博 ...
- Java怎样获取字符串最后出现的位置
lastIndexOf();表示获取字符串最后出现的位置,倒数的位置 @Test /** * lastIndexOf();//获取字符串最后出现的位置,倒数的位置 * */ public void f ...
- SpringCloudBus
不重启微服务的情况下更新配置 配置服务端 tensquare_config配置依赖 <dependency> <groupId>org.springframework.clou ...