获取异步请求的结果 | JS | VUEX | axios
这里都是获取异步axios的请求结果
一、async/await的方式(获取一个vuex中的异步请求的结果)
1、在vuex(store中的index.js)中定义异步函数
1> 在mutation里定义同步函数,(用来自异步请求的结果)更新state中的值
mutations: {
getDbws (state, dbws) {
// 引用state和异步的结果dbws
// 修改state里面的值 => state.xx=''
}
}
}
2> 在action里定义async异步函数,进行axios请求,在返回结果中commit定义在mutation中的函数
actions: {
async getDb (ctx) {
await axios.get('url')
.then((response) => {
ctx.commit('getDbws', response.data.data)
}).catch((err) => {
alert(err)
})
}
}
// 利用传入的context(ctx)作为载体传递参数,而不是直接传给state
// 在action里调用异步请求,使用commit来获取mutation里的方法,更新state
2、在组件xx.vue中定义异步函数,用来调用vuex中的异步函数,获取返回值并更新组件中的值
1> 在methods中定义异步函数
getInit: async function () {
// 用dispatc启动命名在action中的异步函数
// 这个请求之前加 await,这样之后的句子就运行在上一步获取结果之后
await this.$store.dispatch('getDb')
// 用vuex中的异步结果更新组件中的值
this.wsNames = this.$store.state.wsNames
}
2> 在created生命周期函数中运行这个函数
created: function () {
this.getInit()
}
二、promise.all()的方式(获取多个异步请求的结果)
const Pm = new Promise((resolve, reject) => {
if () {axios.put(wmsurl + this.wsName, wmss).then((resolve('promisem')))}
else { resolve('no promisem') }
//满足条件就在if块内获取调用异步请求,并在.then中处理resolve
//不满足条件就直接在else中返回resolve。若不进行任何请求便不返回resolve,那promise.all()便永远都不能执行
})
const Pf = new Promise((resolve, reject) => { })
Promise.all([Pm, Pf]).then((res) => {
// 获取到两个resolve结果后,也就是Pm,Pf这两个异步都执行完后,在promise.all()中进行下一步操作
......})
获取异步请求的结果 | JS | VUEX | axios的更多相关文章
- 异步请求xhr、ajax、axios与fetch的区别比较
目录 1. XMLHttpRequest对象 2. jQuery ajax 3. axios 4. fetch 参考 why: 为什么会出现不同的方法呢? what: 这些都是异步请求数据的方法.在不 ...
- js fetch处理异步请求
以往一直认为异步请求只能使用原生js的XMLHttpRequest或jQuery的$.ajax().$.post()等框架封装的异步请求方法 原来js还提供fetch来替代XMLHttpRequest ...
- vue--axios异步请求及文件目录结构分析(个人记录)
我这里使用axios进行异步加载 axios是一个库,并不是vue中的第三方插件,使用时不能通过Vue.use()安装插件,需要在原型上进行绑定,即直接在main.js中使用Vue.prototype ...
- vue(6)—— vue中向后端异步请求
异步请求 其实什么是异步请求已经不用多说了,通俗的说,就是整个页面不会刷新,需要更新的部分数据做局部刷新,其他数据不变. 学到这里,你应该用过jquery里的ajax了,所以很能理解了,不多说了.详细 ...
- js循环调用axios异步请求,实现同步
准备: const axios = require('axios'); // axios请求 const res = []; const arr = ["a", "b&q ...
- Vue项目中使用Vuex + axios发送请求
本文是受多篇类似博文的影响写成的,内容也大致相同.无意抄袭,只是为了总结出一份自己的经验. 一直以来,在使用Vue进行开发时,每当涉及到前后端交互都是在每个函数中单独的写代码,这样一来加大了工作量,二 ...
- vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据
在vue项目中组件间相互传值或者后台获取的数据需要供多个组件使用的情况很多的话,有必要考虑引入vuex来管理这些凌乱的状态,今天这边博文用来记录这一整个的过程,后台api接口是使用webpack-se ...
- axios浏览器异步请求方法封装 XMLHttpRequest
axios学习笔记defaults(浏览器端异步请求处理方式) 浏览器异步请求方法封装,主要使用XMLHttpRequest lib/adapters/xhr.js //入口 var utils = ...
- NuxtJS如何利用axios异步请求
第一种:使用nuxt 提供的 Axios插件 @nuxtjs/axios 1.安装:npm install @nuxtjs/axios -d 2.配置 nuxt.config.js exports d ...
- vue-d2admin-axios异步请求登录,先对比一下Jquery ajax, Axios, Fetch区别
先说一下对比吧 Jquery ajax, Axios, Fetch区别之我见 引言 前端技术真是一个发展飞快的领域,我三年前入职的时候只有原生XHR和Jquery ajax,我们还曾被JQuery 1 ...
随机推荐
- SAP 开具发票的抬头文本带到会计凭证上
#需求 将开具发票的抬头文本带到会计凭证上.方便财务处理凭证,不然需要再去编辑凭证,容易遗忘. 达到的效果如图所示: #二代增强SDVFX001 事务码cmod分配增强 编写增强出口 代码如下: DA ...
- windows搭建minikube环境学习Kubernates
1.使用powershell下载minikube New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force Invoke-Web ...
- 前端框架大比拼:2022年的Vue与React谁更胜一筹?
携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第 18 天,点击查看活动详情 前端框架经历了十多年的争奇斗艳百花齐放,经历了 JSP.jQuery.Ember.Angular.R ...
- 2022-05-07内部群每日三题-清辉PMP
1.项目需要一位熟练的工程师来执行某个特定任务,但由于工作量大,该工程师不能参与这个项目.项目经理下一步应该怎么做? A.修改进度计划,以适应该资源 B.与职能经理协商该资源的参与 C.培训项目团队中 ...
- 安全测试-WEB安全渗透测试基础知识(二)
1.2. 计算机网络 1.2.1. 计算机通信网的组成 计算机网络由通信子网和资源子网组成. 其中通信子网负责数据的无差错和有序传递,其处理功能包括差错控制.流量控制.路由选择.网络互连等. 其中资源 ...
- 升级版本后,报错go: -i flag is deprecated
环境 go version go1.18.6 升级go版本后,本地项目起不来 将-i去掉 应用,在重启,则正常启动
- MATH1851 Trigonometric Formula Notes
大学里老师都默认我们学过 正割 \(\sec\),余割 \(\csc\) 与余切 \(\cot\) 再加上高中的一些公式都有点遗忘,开个贴做个笔记 常规的 \(\sin x, \cos x, \tan ...
- HCIP-进阶实验05-Eth-Trunk配置部署
HCIP-进阶实验06-Eth-Trunk配置部署 1 实验需求 1.1 实验拓扑 1.2 实验环境说明 无 1.3 实验需求 本实验共采用3台三层交换机.1台路由器.认真分析实验需求,明确每步考查的 ...
- VirtualBox上使用qemu和busybear搭建RISCV环境
Step 1:安装一些编译riscv需要的库: sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr ...
- react native 音频播放 react-native-sound
先放一个效果图:该图实现的效果,点击播放按钮,进度条随着时间移动,点击暂停按钮,进度条停止移动 第一步,用到什么库 1.zmxv/react-native-sound 播放声音的库 2.calls ...