Promise(解决异步编程:书写格式(样式)的方案,它仅仅是将代码的书写从异步变为同步!)

(1)new Promise的好处是,当写上new Promise代码时,里面的函数(通常都是异步操作的函数)会被立即执行。
(2)构造函数Promise接收一个函数作为参数,该函数有2个函数参数,一个是resolve,一个是reject。
(3)这两个函数分别代表将当前Promise置为fulfilled(解决)和rejected(拒绝)两个状态。Promise正是通过这两个状态来控制异步操作的结果。
(4).then方法也是有2个函数作为参数,第一个参数永远是成功时执行的函数,第2个永远是失败时执行的函数。而.catch的
(5).then方法与.catch方法均会返回一个Promise对象.
(6).then方法可以无限的调用(链式自动调用)
(7)then里面的逻辑代码如果出现了错误,并不会在控制台抛出,而是会直接有.catch捕获。
(8)每个Promise的实例对象,都有一个then的方法,这个方法就是用来处理之前各种异步逻辑的结果。
(9).catch为then的语法糖,它是then(null, rejection)的别名。
也就是说,catch也是then,它用于捕获错误,它的参数也就是是then的第二个参数(即catch就是.then的reject函数)
。所以,假设catch中如果return 值的话,新的Promise对象也会是接受状态.
如果1个函数没有返回值(没有return 语句),则返回值为undefined!

整理如下:

   Promise构造函数接收1个函数作为参数,该函数有2个函数形参,然后.then()方法接收2个函数作为形参,第1个永远是成功要执行的函数,第2个永远是失败要执行的函数。(.then也可以只写一个函数参数(成功函数),第2个参数省略(失败函数))
new Promise(function(resolve,reject){
		异步操作代码.......
		if(data){
		resolve(); //执行resolve函数(类似:成功)
		}else{
		reject();//执行reject函数(类似:失败)
		}
}).then(function(){
	成功要执行的代码......
},function(){
	失败要执行的代码......
}).then(function(){
	成功要执行的代码.....
}).then(function(){
    成功要执行......
}).catch(function(){
	失败要执行的代码...
}).then(function(){
   成功要执行的代码....
},function(){
	失败要执行的代码....
}).then..........可以无限往下调用.then或.catch方法

总之使用法则(.then和.catch方法使用法则)是:
(1)只要当前函数(.then或.catch)没有throw Error,则下一步永远执行resolve函数(即.then的第一个参数函数)!!

可参照:https://segmentfault.com/a/1190000015561508
https://segmentfault.com/q/1010000012805108
https://www.imooc.com/article/23838(慕课)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值