vue开发中遇到打印出来的数据为上次操作数据,非本次操作产生数据的异常

开发中遇到打印出来的数据为上次操作数据,非本次操作产生数据的异常。

原因:

1、接口顺序错误,比如应该等a接口请求完成后再去发送事件去更新b数据,如

function getData(val){
	this.$emit('success',val) // 更新b数据
	await getList(); // 请求a接口
}

错误,应该请求完接口再去发送事件更新数据

function getData(val){
	await getList(); // 请求a接口
	this.$emit('success',val) // 更新b数据
}

2、b数据为深拷贝,且未在a数据更新完成后再去操作,如

function getData(){
	this.initJson() // 更新数据,更新里有testShowJson
	this.getTetx() // 更新b数据,b数据更新依赖initJson里的testShowJson
}

function getText(){
	const text = this.textShowJson
	... // 一系列逻辑操作
	await saveText(text) // 更改数据接口里的text
}

错误,应该等待initJson执行完再去执行下一变更数据的函数

async function initJson(){...}
function getData(){
	await this.initJson().then(()=>{
		this.getText()
	}) 
}

另一种方法,使用监听,监听textShowJson的变化就去执行getText()

watch: {
	'textShowJson': {
		handler(val) : {
			this.getText();
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值