• js中的promise函数(ES6)


    promise

                1、它被设计成一个全局构造函数

                2 、这个函数创建出来的对象 是一个特殊的数据容器

                3、这个数据容器内部有三种状态: 等待 ==>产生的正确数据  产生了错误的数据

                4、创建对象时要求传一个函数参数==>也就是在这个函数中处理耗时业务,一般用法:

    new Promise((resolve,reject)=>{resolve(),reject()}) 

    promise函数中的then和catch方法

    调用函数的resolve参数==>这时实际上就是调用了then方法传入的函数 (两者只是间接的关系

    调用函数的reject参数==>这时实际上就是调用了catch方法传入的函数 (一样)

    1. var p1=new Promise((resolve,reject)=>{
    2. setTimeout(()=>{
    3. resolve('hello')
    4. },1000)
    5. // reject("业务出错了") 同理,resolve和reject只能存在一个
    6. })
    7. console.log(p1)
    8. p1.then((data)=>{
    9. console.log(data,111)
    10. },(err)=>{
    11. console.log(err,222)
    12. })
    13. p1.then((data)=>{ //第二种写法,但第二种会捕获错误,并继续让下面的代码正常运行
    14. console.log(data,112)
    15. })
    16. .catch((err)=>{
    17. console.log(err)
    18. })

     结果:等待1s后出现    

     注意:

    一、new Promise((result,faild)=>{})在处理耗时操作的过程中 会有3个状态

    1.处理中 没有调用resolve,reject这个方法

    2.生成正确的结果 调用resolve

    3.生成错误结果 调用reject

     二、 then函数有一个返回值:一定是一个新的Promise

                1、返回的新的Promise对象 是由cb(传入的回调)函数的返回值决定的

                2、cb函数的返回值也是一个Promise对象  那么then函数的返回值 就是它

               3、 cb函数的返回值不是一个Promise对象 那就就把cb的返回值封装为Promise对象 然后作为then的返回值

    async

    1.给函数一个async来修饰

    2.函数内部用await来修饰带promise设计的异步函数 就会直接得到结果 不需要调用then方法来获取数据

    3.async修饰的函数的返回值是一个then方法调用的返回值(同promise)

  • 相关阅读:
    开源音乐播放器!
    maxwell采集mysql binlog 日志数据到kafka topic
    Python生成器:
    当开发人员无法解决问题时,测试人员应该如何与他们沟通?
    Allegro Design Entry HDL字体模糊解决方案图文教程
    Acwing.889 满足条件的01序列
    iOS技术博主指南:填写苹果应用上架中的隐私政策信息
    LeetCode1143
    【Python爬虫】网页抓取实例之淘宝商品信息抓取
    Golang编译-如何忽略某些文件去编译
  • 原文地址:https://blog.csdn.net/m0_63470734/article/details/126129187