zoukankan      html  css  js  c++  java
  • Vue- Promise函数---参数resolve(调用.then方法)-- 参数reject(调用.catch方法)---链式结构

    结构:

    //什么情况下会用到Promise?
    //一把情况下是有异步操作时,使用Promise对这个异步操作进行封装
    <script>
    new Promise((resolve, reject) =>{
        setTimeout(() =>{
            //成功的时候调用resolve
            resolve('成功data')
            //失败的时候调用reject
            reject('error message')
        }, 1000)
    }).then((data) =>{
        //处理成功后的逻辑
        console.log(data);//这个data 是接收的resolve参数--
    }).catch((err) =>{
        console.log(err);
    })
    </script>

    简便写法二

    .then(函数一,函数二)

    <script>
        new Promise((resolve, reject) =>{
            setTimeout(() =>{
                //成功的时候调用resolve
                resolve('成功data')
                //失败的时候调用reject
                reject('error message')
            }, 1000)
        }).then(data =>{
             console.log(data);
        }, err =>{
            console.log(err)
        })
        </script>
    

      链式案例

    <script>
                //模拟网络请求
                //网络请求:aaa ->自己处理(10行)
                //处理:aaa111 ->自己处理(10 行)
                //处理:aaa111222->自己处理
            new Promise((resolve, reject) =>{
                setTimeout(() =>{
                    //成功的时候调用resolve
                    resolve('aaa')
                }, 1000)
            }).then(res =>{
                // 自己处理10行代码
                 console.log(res,'第一层的10行处理代码');
                //2.对结果进行第一次处理
                //return Promise.reject('err')
                //throw 'err'
                return Promise.resolve(res +'111')
                })
            }).then(res =>{
                console.log(res, '第二层的10行处理代码')
                return Promise.resolve(res +'222')
                })
            }).then(res =>{
                console.log(res +'第三层代码')
            }).catch(err =>{
                console.log("err")
            })
            </script>
             <script>
                new Promise((resolve, reject) =>{
                    setTimeout(() =>{
                        //成功的时候调用resolve
                        resolve('aaa')
                    }, 1000)
                }).then(res =>{
                    // 自己处理10行代码
                     console.log(res,'第一层的10行处理代码');
                    //2.对结果进行第一次处理
                    return Promres +'111'
                    })
                }).then(res =>{
                    console.log(res, '第二层的10行处理代码');
                    return res +'222'
                    })
                }).then(res =>{
                    console.log(res +'第三层代码');
                })
                </script>

     此外,promise还有同时处理几个或多个请求

    Promise.all()

    这个用于:需求:需要同时获取两个或多个数据,之后才能下一步

    用于判断是否接受到了或者叫判断执行完成了这两个或多个请求

  • 相关阅读:
    【CF446D】DZY Loves Games 高斯消元+矩阵乘法
    【CF542D】Superhero's Job 暴力
    【CF660E】Different Subsets For All Tuples 结论题
    【CF666C】Codeword 结论题+暴力
    【CF666E】Forensic Examination 广义后缀自动机+倍增+线段树合并
    【CF461E】Appleman and a Game 倍增floyd
    【CF471E】MUH and Lots and Lots of Segments 扫描线+并查集+线段树+set
    【CF480D】Parcels DP
    【CF497E】Subsequences Return 矩阵乘法
    SSAS 项目部署失败的问题
  • 原文地址:https://www.cnblogs.com/fdxjava/p/11622490.html
Copyright © 2011-2022 走看看