uniapp——rxjs,Promise两个异步合并

一、rxjs方式

首先需要下载rxjs文件

下载地址

关于rxjs的学习文档如下:

zip · 学习 RxJS 操作符

1、两个异步合并(都返回了值才往下运行)

            clickChange() {
				console.log("按下",this.title)
				const observer = {
				  next : item => console.log("==>"+item[0])//这里是一个数组,对应zip第一个参数返回的值
				}
				var oa=zip(this.observable1(),this.observable2())
				oa.subscribe(observer)
			},

			//异步方法一
			observable1(){
				const observable = new Observable(observer => {
				  setTimeout(() => {
				    observer.next('我是异步一')
				  }, 8000)
				})
				return observable
			},


            //异步方法二
			observable2(){
				const observable = new Observable(observer => {
				  setTimeout(() => {
				    observer.next('我是异步二')
				  }, 7000)
				})
				return observable
			}

使用:直接调用clickChange方法即可

二、使用promise方式

1、两个异步合并代码

                const Ajax = new Promise((resolve, reject) => {
					getAllRecruiter().then(res => {
						console.log('Ajax异步成功')
						resolve(res)
					}).catch((err) => {
						console.log('Ajax异步失败')
						reject(err);
					})
				})

				const Ajax0 = new Promise((resolve, reject) => {
					getAllEmploymentType().then(res => {
						console.log('Ajax0异步成功')
						resolve()
					}).catch(() => {
						console.log('Ajax0异步失败')
						reject(err);
					})
				})

				Promise.all([Ajax, Ajax0]).then(() => {
					console.log('多个异步结束')
					//所有请求都成功后执行函数
					// this.getOldData()
				}).catch(() => {
					// 异常处理
					console.log('多个异步结束(失败)')
				})

2.promise的对象方法(p1,p2,p3为promise的实例对象)

Promise.all()并发处理多个异步任务,所有任务都执行完成才能得到结果

Promise.all( [p1,p2,p3] ) .then ( (result) => {consoleog (result)
})

Promise.race()并发处理多个异步任务,只要有一个任务完成就能得到结果


Promise.race ( [p1,p2,p3] ).then ( (result)=>{
console. log (result)
})

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wy313622821

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

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

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

打赏作者

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

抵扣说明:

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

余额充值