js系列四十三: Promise.all和Promise.race

本文探讨了JavaScript中Promise.all和Promise.race的使用。Promise.all用于处理多个Ajax请求,当所有请求完成时才执行then方法。而Promise.race则在数组中的任一Promise状态改变时立即执行,提供了一种快速响应的解决方案。通过实例代码,展示了它们在并发操作中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Promise.all

当有一个Ajax请求时,他的参数需要另外两个甚至更多个请求都有返回值之后才能确定时,就需要用到Promise.all来帮助我们应对这个场景.

Promise.all接受一个Promise对象组成的数组作为参数,当这个数组中所有的Promise对象状态都变成resolve或者reject时,他才会调用then方法.

var url;
var url1;
function renderAll(){
	return Promise.all([getJson(url), getUrl(url2)]);
}
renderAll().then(function(value){
	console.log(value);
})

Promise.race

与Promise.all相似的是,Promise.race也是一个Promise对象组成的数组作为参数,不同的是,只要当数组中的其中一个Promise状态变成resolved或者rejected时,就可以调用.then方式,而传递给then方法的值也会有所不同.可以在浏览器中运行下面这个例子.

function renderRace() {
	return new Promise.race([getJson(url), getJson(url1)]);
}

renderRace().then(function(value){
	console.log(value);
})
博客
v8worker
05-08 2958
05-06 2941
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值