微信小程序学习第8周————Promise

Promise:

学习任何知识点前,我们总要知道,这个东西的由来和存在的意义,以便我们能更好理解知识。


promise是什么?

Promise是异步编程的一种解决方案,从语法上讲,Promise是一个对象,可以获取异步操作的消息是引用

promise存在的意义:

避免回调地狱的问题
Promise对象提供了简洁的API,使得控制异步操作更加容易


基础用法

new Promise(function(resolve,reject){ 
	//resolve方法会被then捕获
	//reject方法会被catch捕获
})

new Promise(function(resolve,reject){ 
	//resolve方法会被then捕获
	setTimeout(()=>{
		resolve('会被then捕获')
	},1000)
}).then(res=>{
	console.log(res)
})

new Promise(function(resolve,reject){ 
	//reject方法会被catch捕获
	setTimeout(()=>{
		reject('会被catch捕获')
	},1000)
}).then(res=>{
	console.log(res)//不会执行这里
}).catch(err=>{
	console.log(err)
})

Promise三种状态

pendding //正在请求
resolved //成功
rejected //失败


promise的方法

关于promise方法的解释及用法我这里就不再细说,因为网上关于promise的解析文章太多了,而且作为初学者来看,前辈们的解析足够使用了。

then的用法:捕获resolve

catch方法:捕获throw及reject

all方法:参数是对象数组。以慢为准,等数组中所有的promise对象状态为resolved时,该对象就为resolved;

race方法:参数是对象数组。以快为准,数组中所有的promise对象,有一个先执行了何种状态,该对象就为何种状态,并执行相应函数


最后分享promise的链式调用简写

new Promise((reslove,reject)=>{
      reslove('aaa')
    }).then(res=>{
      console.log(res);
      //这里省略了new promise,直接返回参数
      return res+111
    }).then(res=>{
      console.log(res);
      return res+222
    }).then(res=>{
      console.log(res);
      //出现throw链式中止,catch捕获
      throw res+'出错了'
      return res+333
    }).catch(err=>{
      console.log(err);
    })
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Min;

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值