Promise处理网络请求的方式

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);
    })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
promise 是 JavaScript 中处理异步操作的一种方式,用于处理网络请求是其中一个常见的用途。 网络请求通常是一个异步操作,因为它需要等待服务器响应,并且不能阻塞主线程。在过去,我们通常使用回调函数来处理异步操作,但这往往会导致回调地狱,使代码难以理解和维护。 Promise 提供了一种更优雅的方式处理异步操作。它可以将异步操作分为三个状态:pending(进行中)、fulfilled(已完成)和rejected(已拒绝)。当一个操作正在进行中时,Promise 处于 pending 状态;当操作成功完成时,Promise 转为 fulfilled 状态,并返回结果;当操作失败时,Promise 转为 rejected 状态,并返回错误信息。 对于网络请求,我们可以使用 Promise 来管理请求的状态和结果。例如,使用 Fetch API 来发送网络请求并返回一个 Promise 对象: ```javascript fetch('https://api.example.com/data') .then(response => response.json()) .then(data => { console.log(data); }) .catch(error => { console.error(error); }); ``` 在上面的代码中,fetch() 函数返回一个 Promise 对象,我们可以使用 then() 方法来处理成功的响应,并将响应转为 JSON 格式。然后,我们可以在第二个 then() 方法中访问返回的数据。如果出现错误,可以使用 catch() 方法来处理异常情况。 通过使用 Promise,我们可以更清晰地组织和处理异步操作,使代码更易读和维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值