获取异步请求的结果 | 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 ...
随机推荐
- TCP协议之四次挥手
参考文章 这里 四次挥手过程 四次挥手的过程是全双工的,因此每个方向都必须要进行单独的关闭,这样原则是当一方完成数据发送后发送一个FIN信号给对方,对方收到FIN后就知道这个方向不会再有数据发送过来了 ...
- js中常用Math对象
js中常用Math对象 Math.round()四舍五入 Math.ceil() ->ceil 天花板--->向上取整 Math.floor() 向下取整 Math.floor(-11.1 ...
- sparksql的join有哪些及实现原理
sparksql的3种join实现 1.Broadcast Join (小表对大表) 在数据库的常见模型中(比如星型模型或者雪花模型),表一般分为两种:事实表和维度表. 维度表一般指固定的.变动较少的 ...
- 【yum】使用新的centos 6.9系统时,遇到的Yum问题
1,不识别域名 vi /etc/yum.conf 新增: nameserver 1.1.1.1(根据实际配置) 2,Header V3 RSA/SHA256 Signature, key ID 060 ...
- MySQL Galera cluster 集群常用参数说明
1.wsrep_local_state_uuid: 与集群的wsrep_cluster_state_uuid一致 root@[(none)]> show status like '%wsrep_ ...
- nginx 配置443 域名
1 申请域名 (公有云)2 下载证书 pem key 并上传服务器指定目录3 公有云上做A记录解析 (解析到代理的nginx)4 nginx配置443模块 配置内容: server { listen ...
- MapReduce原理——切片代码分析
(1)程序先找到数据存储的目录 (2)遍历目录对每个文件进行切片 (3)遍历一个文件: 获取文件大小 计算切片大小 默认情况下,切片大小等于blocksize 每次切片时都要判断剩下部分师否大于块的1 ...
- 数据库链接失败错误ERROR com.alibaba.druid.pool.DruidDataSource - {dataSource-1} init error解决
用java -jar启动之后,只要一访问数据库就报错,错误信息如下: 文字如下: 2019-07-02 10:25:12.220 ---> [http-nio-8080-exec-1] ---& ...
- js中的加法运算
- Django里ORM常用关键字
一.ORM常用关键字 # 关键概览 1.create() 2.filter() 3.first() last() 4.update() 5.delete() 6.all() 7.values() 8. ...