promise的all方法和race
2023-12-20 06:31:32
all 方法可以完成并行任务,它接收一个数组,数组的每一项都是一个promise对象
当数组中所有的promise的状态都达到resolved的时候,all方法的状态就会变成resolved,如果有一个状态变成了rejected,那么all方法的状态就会变成rejected。
// all 方法可以完成并行任务,它接收一个数组,数组的每一项都是一个promise对象
// 当数组中所有的promise的状态都达到resolved的时候,all方法的状态就会变成resolved,如果有一个状态变成了rejected,那么all方法的状态就会变成rejected。
window.onload = function () {
// 在这里编写需要在页面加载完成后执行的代码
let promise1 = new Promise((resolve, reject) => {
resolve({
code: 200,
data: [
{
weight: 1,
name: '测试数据一',
sex: '0',
status: '正常'
},
{
weight: 2,
name: '测试数据二',
sex: '1',
status: '正常'
}
]
})
})
let promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve({
code:200,
data:[
{
name:"长官三",
age:'18'
}
]
})
}, 1000)
})
let promise3 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(3)
}, 3000)
})
Promise.all([promise1, promise2, promise3]).then((res) => {
console.log(res)
})
};
race方法和all一样,接受的参数是一个每项都是promise的数组,但是与all不同的是,当最先执行完的事件执行完之后,就直接返回该promise对象的值。如果第一个promise对象状态变成resolved,那自身的状态变成了resolved;反之第一个promise变成rejected,那自身状态就会变成rejected。
let promise1 = new Promise((resolve,reject)=>{
setTimeout(()=>{
reject(
{
code: 200,
data: [
{
weight: 1,
name: '测试数据一',
sex: '0',
status: '正常'
},
{
weight: 2,
name: '测试数据二',
sex: '1',
status: '正常'
}
]
}
);
},2000)
});
let promise2 = new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve(2);
},1000)
});
let promise3 = new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve(3);
},3000)
});
Promise.race([promise1,promise2,promise3]).then(res=>{
console.log(res);
//结果:2
},rej=>{
console.log(rej)};
)
文章来源:https://blog.csdn.net/weixin_50379372/article/details/135084865
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!