菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育
标题:
王龙飞 2023-1-9
[打印本页]
作者:
浅夏ζ
时间:
2023-2-16 18:17
标题:
王龙飞 2023-1-9
<script>
// 实例化
// Promise的状态改变了之后就结束了
const p1 = new Promise((resolve, reject) => {
if (true) {
resolve('成功');
} else {
reject('失败')
}
});
const p2 = new Promise(resolve => {
setTimeout(() => {
resolve('aaa');
}, 1000)
});
const p3 = new Promise(resolve => {
setTimeout(() => {
resolve('bbb');
}, 200)
});
const p4 = new Promise(resolve => {
setTimeout(() => {
resolve('ccc');
}, 3000)
});
// 静态方法--all,any,race
//all()
Promise.all([p2, p3, p4]).then(values => {
console.log(values);
});
// any();
Promise.any([p2, p3, p4]).then(values => {
console.log(values);
});
// race();
Promise.race([p2, p3, p4]).then(values => {
console.log(values);
});
// 所有的成功才可以,并发执行多个promise,必须多个(所有的)状态都变成成功才可以
// console.log(Promise.all);
// 任何一个成功就可以,只要并发中有一个成功,就返回那个成功的promise的值
// console.log(Promise.any);
// 谁跑的快就是谁--赛跑,并发执行多个promise,找出跑的最快的
// console.log(Promise.race);
// console.log(Promise.reject);
// console.log(Promise.resolve);
</script>
[color=rgb(19, 192, 126) !important]
复制代码
2.async控制顺序
<script>
// async和await是ES7提出来的关键字,主演用于补充Promise
// Promise控制异步顺序,解决回调地狱
// async:用在一个函数前面,声明函数中有异步的操作
// await:只能用在async修饰的函数,必须配合async使用,用于等待一个Promise实例的状态变化
async function fn(){
let tet=await new Promise((resolve,reject)=>{
if(true){
setTimeout(()=>{
resolve('成功');
},5000);
}else{
reject('失败');
}
});
console.log(tet);
};
fn();
</script>
[color=rgb(19, 192, 126) !important]
复制代码
<script>
async function getData(){
let r1=await axios.get('http://162.14.107.109/list')
console.log('接口1list',r1.data);
let r2=await axios.get('http://162.14.107.109/show?id=1174')
console.log('接口2show',r2.data);
let r3=await axios.get('http://162.14.107.109/show?id=1185')
console.log('接口3show',r3.data);
}
getData();
</script>
[color=rgb(19, 192, 126) !important]
复制代码
[color=rgb(19, 192, 126) !important]
欢迎光临 菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育 (http://www.xingmaxueyuan.com/)
Powered by Discuz! X3.4