vue异步请求, 等待处理的回调方法, 解决 拿不到请求rueturn出来的数据 问题

有的时候我们需要在网络请求结束后,再进行后续动作,例如,在一段网络请求结束后执行跳转,如果不做处理,会有可能出现网络请求未完成的时候页面就已经跳转走不存在了,所以要在调用网络请求的方法中加入一个回调函数,函数里边写请求结束的代码,然后等待网络请求结束后,再去执行这个回调函数

先把请求数据的方法加上 async, 请求axious本身加上await, 如下所示

			async getData(layer, dirId) {
				let mydata = await this.$axios({
					method: 'post',
					url: 'url',
					data: qs.stringify({
						"entId": 1,
					}),
				}).then(res => {
					if (res.data.state == 1) {
						let obj = res.data.data,
							objOne = [];
						for (let i = 0; i < obj.length; i++) {
							objOne.push({
								label: obj[i].DIR_NAME,
								id: obj[i].DIR_ID,
							})
						}
						/* 重要的return , 返回你需要的东西 */
						return objOne   
					} else {
						that.$message.error(res.data.msg);
					}
				})
				return mydata
			},

然后直接用变量获取就行了

let item = null ;
this.getData(layer, item.id).then(result => {
		item = result;
})

版权声明:本文为qq_39051175原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。