VUE04_Promise的概述、常用API、静态方法、axios基于不同请求传参、拦截器、async/await用法(一)

简介: ①. Promise的概述和使用②. Promise常用API(实例方法)③. Promise中的静态方法

①. Promise的概述和使用


  • ①. Promise是异步编程的一种解决方案,从语法上讲,Promise是一个对象,从它可以获取异步操作的消息


  • ②. 好处


可以避免多层异步调用嵌套问题(回调地狱)


Promise对象提供了简洁的API,使得控制异步操作更加容易


③. 具体使用步骤


实例化Promise对象,构造函数中传递函数,该函数中用于处理异步任务


resolve和reject两个参数用于处理成功和失败两种情况,并通过p.then获取处理结果


var p = new Promise(function (resolve, reject) {
    setTimeout(() => {
        if (false) {
            resolve('TANGZHI');
        } else {
            reject('ERROR');
        }
    }, 2000);
});
p.then(function (ret) {
    //这是成功调用的结果
    console.log(ret);
},function(ret){
    //这是失败的结果
    console.log(ret);
});


②. Promise常用API(实例方法)


  • ①. .then():得到异步任务正确的结果


  • ②. .catch():获取异常信息


  • ③. .finally():成功与否都会执行(不是正式标准)


 <script>
  //console.dir():可以显示一个对象所有的属性和方法,用来对一个对象进行检查(inspect),并以易于阅读和打印的格式显示。
  //console.dir(Promise);
  //第一种方法
  function po(){
      return new Promise(function(resolve,reject){
         setTimeout(function(){
             //resolve('hello xiaozhi');
             reject('Error');
         },3000);
      });
  }
  //第一种方式
  po()
  //方法成功时会调用这里
  .then(reponse=>{
     console.log(reponse);
  })
  //方法失败时会调用这里
  .catch(reponse=>{
     console.log(reponse);
  })
  //无论方法是否成功,这里都会被调用
  .finally(()=>
     console.log('finished')
   );
  //第二种方式 
  //[第一种方式和第二种方式是等价的]
  po()
  .then(function(ret){
     //这里是成功后的回调
     console.log(ret)
  },function(ret){
     //这里是失败后的回调
     console.log(ret);
  })
  .finally(()=>{
     alert("第二种方式finally...") 
  });
 </script>


③. Promise中的静态方法


①. Promise.all()接受Promise对象组成的数组作为参数,它的返回参数也是数组。当promise的全部为resolve后,它才会进入.then()方法,只要有一个promise为reject,它就会进入.catch()


并发处理多个异步任务,所有任务都执行完成才能得到结果


②. Promise.race()接受的参数与Promise.all()一样,不同的是,它会辨别最快达到resolve或者reject的promise对象,如果这个最快是resolve,则进入.then()方法,如果是reject,则进入.catch()方法。


并发处理多个异步任务,只要有一个任务完成就能得到结果


微信图片_20220108125501.png




相关文章
|
开发工具 开发者 git
2023 Visual Studio Code 插件推荐:18 个提高开发效率的常用插件
Visual Studio Code (简称VSCode) 是一款强大的开源代码编辑器,它拥有众多功能强大的扩展插件,使得开发者可以根据自己的需求来定制编辑器的功能和外观。在本文中,我们将分享一些非常实用的 VSCode 插件,这些插件将提高您的开发效率,使编码变得更加愉快。
1466 2
|
前端开发
Vue3——使用v-if或v-show来实现过渡的动画效果
使用v-if或v-show来实现过渡的动画效果
1441 0
|
XML 前端开发 Java
基于SpringBoot 3.3实现任意文件在线预览功能的技术分享
【8月更文挑战第30天】在当今的数字化办公环境中,文件在线预览已成为提升工作效率、优化用户体验的重要功能之一。无论是文档、图片、PDF还是代码文件,用户都期望能够直接在浏览器中快速查看而无需下载。本文将围绕如何在Spring Boot 3.3框架下实现这一功能,分享一系列技术干货,助力开发者高效构建文件预览服务。
1873 3
|
缓存 Java Maven
【简单四步教你解决♥十分有效】Maven依赖报错、依赖或插件导入失败的万能解决办法
【简单四步教你解决♥十分有效】Maven依赖报错、依赖或插件导入失败的万能解决办法!在处理Maven项目问题时,首先检查Maven配置是否正确。接着通过“File--Invalidata Caches”清除IDEA缓存并重启。使用Maven命令`mvn dependency:purge-local-repository`和`mvn dependency:resolve`清除本地依赖缓存。最后,在Terminal中输入`mvn clean install`完成构建。
4443 1
【简单四步教你解决♥十分有效】Maven依赖报错、依赖或插件导入失败的万能解决办法
|
前端开发
Umi.js
Umi.js
558 0
|
JavaScript 前端开发 网络架构
umi之约定式路由
umi之约定式路由
911 0
|
前端开发
前端知识笔记(四)———深浅拷贝的区别,如何实现?
前端知识笔记(四)———深浅拷贝的区别,如何实现?
428 0
|
存储 前端开发 Java
Spring Boot 集成 MinIO 与 KKFile 实现文件预览功能
本文详细介绍如何在Spring Boot项目中集成MinIO对象存储系统与KKFileView文件预览工具,实现文件上传及在线预览功能。首先搭建MinIO服务器,并在Spring Boot中配置MinIO SDK进行文件管理;接着通过KKFileView提供文件预览服务,最终实现文档管理系统的高效文件处理能力。
2350 11
|
JavaScript
vue项目中统一管理多个后端URL的方法
vue项目中统一管理多个后端URL的方法
544 0
|
3月前
|
人工智能 前端开发 搜索推荐
前端开发必备的 VSCode 插件推荐(第二期)
本文由喵喵侠推荐三款实用VSCode插件:background自定义编辑器背景、Codeium提供AI智能补全、colorize实现颜色值实时高亮,提升开发效率与视觉体验,适合前端开发者使用。
687 0