vue promise

本文介绍了Promise作为异步编程解决方案的基本概念和使用场景,特别是针对网络请求的处理。通过示例展示了Promise的创建、解决(resolve)和拒绝(reject)过程,以及错误处理。此外,还探讨了如何通过Promise.all处理多个并发的Promise请求,并解释了Promise.resolve和Promise.reject的用法。
摘要由CSDN通过智能技术生成

1.Promise 是异步编程的一种解决方案

那什么时候我们会来处理异步事件呢?

一种很常见的场景应该就是网络请求了。

我们封装一个网络请求的函数,因为不能立即拿到结果,所以不能像简单的3+4=7一样将结果返回。

所以往往我们会传入另外一个函数,在数据请求成功时,将数据通过传入的函数回调出去。

如果只是一个简单的网络请求,那么这种方案不会给我们带来很大的麻烦 

2.promise的使用

/什么情况下用到promise
    // 一般情况下是有异步操作的时候,使用Promise对这个异步操作进行封装
new Promise((resolve,reject)=>{
setTimeout(()=>{
    //成功的时候调用  处理代码在then

   //resolve('liu')
    //失败的时候调用reject
    //处理代码在catch
    reject('error message')
},1000)

    }).then((data)=>{
    console.log(data);

    }).catch((err)=>{
    console.log(err)

    })

3.

 new Promise((resolve ,reject)=>{
    setTimeout(()=>{
        resolve('aaa')
    },1000)
}).then((res)=>{
    console.log(res);
  //  1  return  Promise.reject('error messsage')
     //2
      throw 'error message33'
     //直接执行最后的catch模块

}).then(res=>{
    console.log(res);
    return new Promise(resolve=>{
        resolve(res+'2222')
    })
}).then(res=>{

    console.log(res);
}).catch((err)=>{
     console.log(err+"11111111");
 })

4.

Promise.resovle():将数据包装成Promise对象,并且在内部回调resolve()

函数 Promise.reject():将数据包装成Promise对象,并且在内部回调reject()函数

也可以return Promise.resovle(data)改成了return data

 5.当有多个promose请求的时候

可以使用promise.all

 Promise.all([
new Promise((resolve,reject)=>{
    setTimeout(()=>{
        resolve({name:'why',age:22})
    },2000)
}),new Promise((resolve,reject)=>{
    setTimeout(()=>{
        resolve({name:'why',age:21})
    },2000)
})
 ]).then(res=>{
     console.log(res);
 })

会返回两个对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值