(promise.all、promise.race、promise.any、axios同步请求、ajax同步请求)

promise

  • promise.all([pro1,pro2]) 将封装好的promise实例,封装到一个promise实例中,pro1和pro2是另外创建的promise实例,里面可以放不止两个实例,只要这些实例都为成功(resolve),那么最终就会返回成功的。如果有一个为失败(reject),那么就会返回失败
  • promise.race([pro1,pro2]) 会将最先执行的promise实例的状态返回出来,无论失败还是成功
  • promise.any([pro1,pro2]) 只要有一个实例的状态为成功,那么就返回成功,只有所有实例都为失败,才会返回失败的状态
// promise.all 可以将封装好的promise实例,添加到一个promise实例中,里面的promise实例如果都为成功,会将所有的成功状态打出来,如果有一个为失败的状态,那么就会将失败的状态返回出来
			let p1 = new Promise(function(reslove,reject){
				reslove("p1成功")
			})
			let p2 = new Promise(function(reslove,reject){
				reslove("p2成功")
			})
			Promise.all([p1,p2]).then(res=>{
				console.log(res)
			}).catch(err=>{
				console.log(err)    // ["p1成功","p2成功"]
			})
			let p3=Promise.reject("p3失败")
			Promise.all([p1,p2,p3])   // "p3失败"
			
			
			// promise.race也能将封装好的promise实例添加到一个promise实例中,无论成功与失败,只返回先执行的
			let p4 = new Promise(function(resolve,reject){
				setTimeout(()=>{
					resolve("p4成功")
				},2000)
			})
			let p5 = new Promise((resolve,reject)=>{
				setTimeout(()=>{
					resolve("p5成功")
				},1000)
			})
			// Promise.race([p4,p5]).then(res=>{
			// 	console.log(res)
			// }).catch(err=>{
			// 	console.log(err)
			// })
			let p6=Promise.reject("p6失败")
			Promise.race([p4,p6,p5]).then(res=>{
				console.log(res)
			}).catch(err=>console.log(err))
			
			// promise.any 只要有一个实例状态为resolve,就返回成功状态,只有全为reject才会返回reject状态
			Promise.any([p4,p5,p6]).then(res=>console.log(res)).catch(err=>console.log(err))
			Promise.any([p3,p6])

axios实现同步请求

axios执行异步的请求,我们可以使用async和await进行操作,让axios实现同步请求

			async function getData (){    // 通过async函数与await实现同步操作
				let data = {};
				let res = await axios.get("url")   // await将异步转同步
				data= res.data
			}

ajax实现同步请求

  • 原生js中ajax请求在设置请求时,在open中要写上请求方式、请求地址、是否异步,我们只要传一个false过去即可实现,ajax默认是进行异步请求的
  • 在jQuery中,传递参数时,给一个async:false也可以实现
 
$.ajax({
    type: "post",
    url: "url",
    data: {},
    async: false, //同步
});

判断客户端是iso还是安卓

通过navigator.userAgent就可以获取相关的信息,只要判断里面的值是否包含Android 或者ISO就可以进行判断

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值