vue 基础 promise函数的使用

2022-11-01 12:38:43

vue 基础 promise
1.promise基本使用

<script>newPromise((resolve,reject)=>{setTimeout(()=>{//成功//收到data后把 data传递到then那resolve('hello world')//失败//调用 rejectreject('error')},1000)}).then((data)=>{//处理代码
                console.log(data);
                console.log(data);
                console.log(data);}).catch(err=>{
                console.log(err);})</script>

说明:

  • 1.成功时,2个参数 成功时(resolve)失败时(reject)

2.promise失败的时候

<script>newPromise((resolve,reject)=>{setTimeout(()=>{// resolve('hello Vue.js')reject('error message')},1000)}).then(data=>{
            console.log(data);},err=>{
            console.log(err);})</script>

说明:
1.当执行reject的时候就是错误的
2.会把错误信息当做参数 err 传递并打印
3.data是第一个参数,接收成功时的信息
4.err 是第二个参数,接收失败时候的错误信息

3.promise的链式编程一

<script>//  参数 -> 函数(resolve,reject)//     resolve ,reject 本身又是函数//     链式编程newPromise((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");returnnewPromise((resolve, reject)=>{// 第二次网络请求setTimeout(()=>{resolve();},1000);});}).then(()=>{// 第二次处理的代码
                    console.log("hello vue");
                    console.log("hello vue");
                    console.log("hello vue");
                    console.log("hello vue");
                    console.log("hello vue");returnnewPromise((resolve, reject)=>{// 第三次网络请求setTimeout(()=>{resolve();});});}).then(()=>{setTimeout(()=>{// 第三次处理的代码
                        console.log("Hello python");
                        console.log("Hello python");
                        console.log("Hello python");
                        console.log("Hello python");
                        console.log("Hello python");});});</script>

说明:
1.第一次网络请求完之后 .then执行第一次的处理结果
2.然后返回第二次的网络请求.then执行第二次的处理结果

4.promise的链式编程二

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

输出结果

aaa 第一层的10行处理代码
aaa111 跌二层的10行处理
aaa111222 第三层的10行代码处理

5.promise的all方法使用

<script>
        Promise.all([newPromise((resolve,reject)=>{setTimeout(()=>{// resolve('results1')resolve({nam2:'zhangsan',age:19,sex:'男'})},2000)}),newPromise((resolve,reject)=>{setTimeout(()=>{// resolve('results2')resolve({nam2:'feng',age:16,sex:'男'})},1000)})]).then(results=>{
            console.log(results);})</script>

说明:
1.俩个promise都执行成功才执行results

  • 作者:划空破云烟
  • 原文链接:https://blog.csdn.net/qq_45494569/article/details/115315200
    更新时间:2022-11-01 12:38:43