用vue中的Promise封装axios并实现同步返回值

vue axios二次封装返回promise 调用时如何读取 一直傻了没懂then调用什么意思,其实是在调用接口的地方使用then。 下面各自截取部分来讲述。 首先我在http.js里面对axios进行了封装。 // 响应拦截器 var instance = axios.create({ timeout: 1000 * 12}); instance.interceptors.response.use( // 请求成功 res => res.status === 200 ? Promise.resolve(res) : }); 然 阅读详情

Promise封装axios(封装的方法网上很多,不详细写了)
可参考:
https://www.kancloud.cn/cooldrw2015/vue_2/1163405
https://www.jianshu.com/p/0229211ea679

/**
  * post方法,对应post请求
  * @param {String} url [请求的url地址]
  * @param {Object} params [请求时携带的参数]
  */
export function post(url, params) {
    return new Promise((resolve, reject) => {
          axios.post(url, QS.stringify(params))
        .then(res => {
            resolve(res.data);
        })
        .catch(err =>{
            reject(err.data)
        })
    });
}

我的实现步骤:
1.创建一个axios.js,以POST为例,在axios.js中统一请求路径:

export const postRequest = (url, params) => {
    return new Promise((resolve ,reject)=>{ 
       let res= axios({
            method: 'post',
            url: `${base}${url}`,
            data: JSON.stringify(params),
            dataType : "json",
            headers: {
                'Content-Type': 'application/json'
            }
        });
       resolve(res); //返回值
    });
};

2.创建api.js存放后台请求路径

// 引入axios.js
import {  postRequest} from ' axios.js文件路径 ';

//后台接口
export const getInfo = (params) => {
    return postRequest('/test/getInfo ',params)
}
export const getData = (params) => {
    return postRequest('/test/getData ',params)
}

3.创建test.vue

<style>
</style>
<template></template>
<script>
//引入api.js
import {
 //需要调用的方法名称,同api.js中的方法名称
       getInfo,
       getData
    }from ' api.js的文件路径 ';
 export default {
	name:"test",
	data(){
		return {
			info:"",
			data:""
		}
	},
	methods:{
		getInfo:function (params) {
              return getInfo(params); //定义方法时,直接return getInfo (params)
            },
         getData:function (params) {
              return getData(params); 
            }
	},
	//begin======【只能在这个区域内同步】=================================
	async created(){ //一定要用async和await
		let info=await this.getInfo(123);
		let data=await this. getData(info);
		//先执行getInfo方法,返回info的值后,再执行getData方法
	},
	//end=============================================================
	我是别的方法(){
		//this.info的值仍然为“”
	}
}
</script>

注意:async和await同步的地方依据个人需求而定;也可以在methods中定义方法时写。
以上步骤是亲自采坑后总结的,希望能帮助到跟我有同样遭遇的序员们@_@

Vue中使用axios(Promise) 前端小白简单总结,参考黑马珠峰等课程以及其他内容整合,还望各位大佬多多指教~ 一、axios的使用 axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,本质上也是对原生XHR的封装,只不过它是Promise的实现版本,符合最新的ES规范,有以下特点: 从浏览器中创建 XMLHttpRequests 从 node.js 创建 http 请求 支持 Promise API 拦截请求和响应 转换请求数据和响应数据 取消请求 自动转换 JSON 数据 客户端支持防御 XSR. 阅读详情

相关推荐

axios 二次封装及 api 解耦【Vue】

axios 基础知识、axios 在 vue 中的二次封装及 api 解耦。

m0_52861684的博客 1809

vue中ES6(promise)日常项目异步函数同步化处理

前言 问题:最常见的就是一个异步函数调用成功,另一个函数需要用到这个接口的返回值或者处理值,由于异步机制问题,可能会导致下一个函数还没有拿到上一个函数的返回值就开始调用了,这个时候我们可以通过回调函数解决问题,由于回调函数私有变量过多会造成内存滥用,而es6promise的出现让我们处理起来更加简洁,以更简洁的代码完成同样的功能也是个人随推崇的。 目录前言一、promise是什么?二、使用场景1.普通异步函数同步化处理(1)一个函数需要另一个函数的返回值才能调用(2)两个函数及以上返回值依次调用(3)某个

qq_42166078的博客 4263

Vue使用axios二次封装、解决跨域问题

在项目中,axios 进行二次封装可以更加方便的使用 Ajax 请求,提高代码复用性和维护性。同时可以封装统一的请求与响应拦截处理。在实际开发过程中,浏览器通常需要和服务器端进行数据交互。而 Vue.js 并未提供与服务器端通信的接口。从 Vue.js 2.0 版本之后,官方推荐使用axios 来实现 Ajax 请求。axios 是一个基于 promise 的 HTTP 客户端。

pan_junbiao的博客 2637

vue项目中Promise同步请求

1.js中定义Promise export function wxLogin() { let pResult = new Promise((resolve, reject) => { uni.login({ provider: 'weixin', success: (res) => { console.log('login success:', res); ...

weixin_43825693的博客 6581

Vue使用axios实现Ajax请求

在实际开发过程中,浏览器通常需要和服务器端进行数据交互。而 Vue.js 并未提供与服务器端通信的接口。从 Vue.js 2.0 版本之后,官方推荐使用axios 来实现 Ajax 请求。axios 是一个基于 promise 的 HTTP 客户端。

pan_junbiao的博客 1342

Vue 项目中 Axios 的封装方向探索

Axios是一个基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js 环境中发送 HTTP 请求。它的主要作用是帮助前端与后端进行数据交换,通常用于向后端接口发送GETPOSTPUTDELETE等请求并处理返回的响应。通过封装Axios减少代码重复:在全局统一设置 API 基础 URL、请求头、请求超时等。集中处理请求和响应:使用请求拦截器和响应拦截器处理公共逻辑,比如 token 校验、错误处理等。增强可维护性和扩展性。

向着太阳迎着光 1865

Promise从入门到手写

Promise深入 + 自定义Promise 1. 准备 1.1. 函数对象与实例对象 1. 函数对象: 将函数作为对象使用时, 简称为函数对象 2. 实例对象: new 函数产生的对象, 简称为对象 1.2. 回调函数的分类 1. 同步回调: 理解: 立即执行, 完全执行完了才结束, 不会放入回调队列中 例子: 数组遍历相关的回调函数 / Promise的excutor函数 2. 异步回调: 理解: 不会立即执行, 会放入回调队列中将来执行 例子: 定时器回调 / a

good god~的博客 552

STM32Cubemx+CanFestival:从零到一的CANopen移植实战

本文详细介绍了如何使用STM32CubeMX和CanFestival实现CANopen协议栈的移植,从开发环境搭建到核心配置步骤,再到调试与问题排查。通过实战经验分享,帮助开发者快速掌握STM32与CANopen的结合应用,提升嵌入式系统开发效率。

weixin_42558093的博客 421

vue 函数(三):Promise函数

一、介绍: 通过打印可以看出Promise是一个构造函数,有all、reject、resolve、then、catch等方法。这样用Promise new出来的对象肯定就有then、catch等方法。 二、用法: created() { var p = new Promise(function (resolve, reject) { //做一些异步操作 setTimeout(function () { console.log('Promise执行.

w_t_y_y的博客 9774

[数字电路]用与非门实现BCD译码器驱动数码管

Hello,大家好。这里是xdd_core,好久不见。今天来和大家聊聊大一数字电路课程的一个课设。# Key word:BCD Decoder,Proteus8.x,NAND Gate,Digital Circuit# 流程:Proteus8.x仿真电路并绘制PCB导出Gerber文件打样,最终实物验证。# 以下为我对这个课设的report(里面对整个设计做了详细介绍,并设计了完整的验证电路) 感谢观看,仅供参考,未经作者允许,禁止转载/抄袭,本文已上传至数据库,查重必挂QAQ BCD to 7-Segme

xddcore的博客 6012

V.PhyloMaker实战:从物种列表到维管束植物系统发育树的完整流程

本文详细介绍了使用V.PhyloMaker工具包,从物种列表快速构建维管束植物系统发育树的完整实战流程。内容涵盖R包安装、物种名标准化、核心函数phylo.maker的三种构建方案选择、结果树的可视化与导出,以及与picante包的联动分析,为生态学和生物地理学研究提供了高效解决方案。

weixin_29057237的博客 379

async/await的用法

async await

huanhuan03的博客 458

MobaXterm破解14个会话限制的保姆级教程(附Python环境配置指南)

本文提供了MobaXterm破解14个会话限制的详细教程,并深入讲解了如何配置稳定的Python环境以支持相关脚本运行。通过理解软件授权机制、安全实践步骤以及许可文件的应用,帮助用户解除会话数量限制,实现高效的远程服务器管理与自动化运维。

weixin_29211309的博客 1667

vue使用promise封装axios

前言:在vue项目中我们经常会使用axios去请求后台数据做交互,今天整理了一下怎么使用promise去封装axios,方便我们管理。 在根目录下创建utils文件夹 在utils里创建两个js文件 文件1: index.js import Axios from "axios"; class Http { //request 方法 request(params) { return new Promise((resolve, reject) => { .

LingHuzh的博客 5589

Unity WebGL发布避坑指南:从内存设置到字体打包,一次搞定所有常见问题

本文详细解析Unity WebGL发布的完整流程,从内存设置到字体打包,提供全面的避坑指南。涵盖关键检查清单、内存与性能优化配置、资源处理专项优化及平台适配技巧,帮助开发者高效解决常见问题,确保项目顺利发布。

weixin_28693309的博客 148

Blender到Unreal Engine高效资产迁移:Datasmith插件工作流详解

在3D内容创作与实时渲染领域,数字资产的无损迁移是连接创意设计与最终呈现的关键环节。其核心原理在于通过高保真的数据转换管道,替代传统离散的导出-导入流程,从而保留完整的场景层级、材质属性和关联信息。这项技术的核心价值在于极大提升了跨平台工作流的效率与数据保真度,减少了因格式转换导致的信息丢失和调试成本。它广泛应用于建筑可视化、产品设计、影视预演和游戏开发等场景,使艺术家能在专业DCC工具中专注创作,并一键同步至实时引擎进行交互式渲染与逻辑构建。本文聚焦于实现这一流程的**Datasmith**插件,并深入解

weixin_34110970的博客 268

vue获取promise中的值

方法一: async和await要一起用 async res => { const result = await getPanelData('', this.from_uid); } 方法二 const result = getPanelData('', this.from_uid).then(function (result) { console.log(result) }...

qq_38918953的博客 3万+

MobaXterm结合SSH密钥对安全连接阿里云ECS的实战教程

本文详细介绍了如何使用MobaXterm结合SSH密钥对安全连接阿里云ECS的实战教程。通过对比传统密码登录的风险,重点讲解了密钥对的生成与配置、阿里云控制台的密钥绑定技巧,以及MobaXterm的高级设置和故障排查方法,帮助用户实现高效、安全的远程连接。

weixin_29208327的博客 467

axios在vue中的使用

import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const store = new Vuex.Store({ state: { count: 0, name:'小明', age:20, sex:'男' }, getters: { doneTodos(state) { return state.count; }, mapName(state){ .

前端报刊 3万+

Vue2 - 最新详细实现接入天地图详细配置流程及示例代码教程,提供获取用户当前定位的城市名称及省市区数据、精准经纬度信息、IP属地定位、地图搜索标点等示例,解决天地图跨域报错/页面白屏/定位不准问题

vue2,nuxt2,天地图,使用教程,vue接入国家天地图,定位api,ip属地定位,获取用户当前位置数据,省市区,地图不显示,白屏,报错,vue2如何使用天地图,地图选点,cors跨域,白名单设置了还是不行,vue项目调用天地图api实现定位,Vue2中使用天地图,详细教程,天地图申请密钥key教程,经纬度,经纬度不准确,一直定位北京,定位在北京不准怎么办,nuxt项目天地图,网站,网页,h5页面,地图显示不全,获取当前定位,如何使用天地图,拿到客户ip地址定位城市名称,距离计算,实时搜索地址逆解析,天

🏆 前端领域优质创作者 5328

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

vue中axios的介绍及封装(看这一篇就够了!)

vue中axios的介绍及封装(看这一篇就够了!)

唯见青山不见君 6542

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Vue3中使用axios

此时package.json里面就多了axios依赖。

2301_80412275的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

怎么使用promise封装axios方法

axios 获取后台数据的方法插件 promise 处理异步的方法 封装 在实际项目里为了更方便的使用axios获取后台数据,这里我们用promise封装一下 vue项目里封装方法我们一般放在utils文件夹里 src下新建一个utils文件夹,index.js文件 /* eslint-disable no-unused-vars */ import axios from 'axios...

樊小勇的博客 3376

在vue中使用Promise对axios进行封装

在vue中对axios进行封装根据各自公司需求进行修改在mian.js使用在vue文件中可以直接使用this☞向resFrom这个方法在vuex中就不能使用this,因此可以使用引入import 根据各自公司需求进行修改 import md5 from '@/assets/js/md5.js' import axios from 'axios' // let URL = 'http://b5yc.com' import { Message } from 'element-ui'; let num = 0

qq_43643112的博客 3129

24.Vue项目中有封装过axios吗?怎么封装的?

一、axios是什么 axios是一个轻量的HTTP客户端 基于XMLHttpRequest服务来执行HTTP请求,支持丰富的配置,支持Promise,支持浏览器端和Node.js端。自Vue2.0起,尤大宣布取消对vue-resource的官方推荐,转而推荐axios。现在axios已经成为大部分Vue开发者的首选 特性 从浏览器中创建XMLHttpRequests 从node.js创建http请求 支持PromiseAPI ...

kleinBlue.的博客 4910

vue+axios+promise 封装请求

axios特点 1.从浏览器中创建 XMLHttpRequests 2.从 node.js 创建 http 请求 3.支持 Promise API 4.拦截请求和响应 (就是有interceptor) 5.转换请求数据和响应数据 6.取消请求 7.自动转换 JSON 数据 8.客户端支持防御 XSRF   安装axios和qs npm i axios --save 引入axios im...

胖达的博客 2万+
上一篇: wx.showModal ios系统不显示按钮
下一篇: echarts象形柱图的图标怎么更改
HelloMyCode
博客等级 码龄8年 13粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值