promise对象

promise对象(简单理解)

function test(){
    return Promise((resolve,reject)=>{
        //异步处理
        成功 执行 resolve 并且传递参数
        失败执行 reject 传递参数
    })
}

1.promise 对象可以链式调用 可以有很多个then只用一个catch
2.如果需要链式调用 需要在上一个then 返回一个promise对象
3.千万不要出现在then里面写then(话不多说 代码走起)

promi	se的简单理解

初始状态(回调地狱 )  
	function fun1(){
			setTimeout(()=>{
				console.log(1)
				setTimeout(()=>{
					console.log(2)
					setTimeout(()=>{
						console.log(3)
					},500)
				},1000)
			},1500)
		}
		
		fun1();
		
	解决方案:
		function fun1(){
			return new Promise((resolve,reject)=>{
				setTimeout(()=>{
					console.log(1)
					if(true){
					 resolve('ok1')  
					 // 成功执行 reslove 可以触发外部的then 方法
					}else{
					 reject('err1') 
					 // 失败执行 reject 可以触发外部的catch 方法
					}
				},1000)
			})
		}
		function fun2(){
			return new Promise((resolve,reject)=>{
				setTimeout(()=>{
					console.log(2)
					if(true){
					 resolve('ok2')  			
					}else{
					 reject('err2') 					
					}
				},500)
			})
		}
		function fun3(){
			return new Promise((resolve,reject)=>{
				setTimeout(()=>{
					console.log(3)
					if(true){
					 resolve('ok3')  
				
					}else{
					 reject('err3') 
				
					}
				},800)
			})
		}
		fun1().then((data)=>{
			console.log(data)
			return fun2()
		})
		.then((data)=>{
			console.log(data)
			return fun3()
		})
		.then((data)=>{
			console.log(data)
		})
		.then(()=>{
			console.log('德玛西亚万岁')
		})
		.catch((err)=>{
			console.log("sorry")
		})
		
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值