1.什么情况下会使用Promise函数
一般情况下是有异步操作时,使用Promise对这个异步操作进行封装
2.案例进行详解
2.1.promise网络请求的案例1
**案例说明:**当我们需要延迟一秒后打印‘Hello world’五次,然后再延迟一秒打印五次‘Hello VueJs’,然后再延迟一秒,打印‘Hello Pyhon’的时候使用Promise的场景
初始网络请求方式
<script>
setTimeout(()=>{
console.log('Hello World!');
console.log('Hello World!');
console.log('Hello World!');
console.log('Hello World!');
console.log('Hello World!');
setTimeout(()=>{
console.log('Helllo vuejs');
console.log('Helllo vuejs');
console.log('Helllo vuejs');
console.log('Helllo vuejs');
setTimeout(()=>{
console.log('Hello pyhon');
console.log('Hello pyhon');
console.log('Hello pyhon');
console.log('Hello pyhon');
console.log('Hello pyhon');
},1000);
},1000);
}
1000);
</script>
promise网络请求方式
<script>
//1.使用setTimeout
// setTimeout(()=>{
// console.log('Hello World!')},
// 1000);
new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve()
},1000);
}).then(()=>{
console.log('Hello World!');
console.log('Hello World!');
console.log('Hello World!');
console.log('Hello World!');
console.log('Hello World!');
return new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve()
},1000);
})
}).then(()=>{
console.log('Helllo vuejs');
console.log('Helllo vuejs');
console.log('Helllo vuejs');
console.log('Helllo vuejs');
return new Promise((resolve, reject)=>{
setTimeout(()=>{
resolve()
},1000)
})
}).then(()=>{
console.log('Hello pyhon');
console.log('Hello pyhon');
console.log('Hello pyhon');
console.log('Hello pyhon');
console.log('Hello pyhon');
})
</script>
2.2.promise里面all的使用方法
Promise.all([
new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve('result1')
},2000)
}),
new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve('result2')
},1000)
})
]).then(results=>{
console.log(results);
})