常见异步操作进行同步处理

常见异步操作进行同步处理

async…await… 与 promise

在使用async和await进行将异步改成同步处理时, 所使用的函数返回的值必须是返回的promise对象的数据,否则不会达到异步改成同步操作的处理
实操代码:

const Func = ()=>{
	return new Promise<any>(async (resolve, reject) => {
      // 最外层
      try {
	      let data = 'promise'
	        resolve(data)
      } catch (e) {
        	reject(e);
      }
    });
}
const Func2 =(data)=>{
	console.log(data)
}
const getData = async()=>{
	const res = await Func()
	Func2 (res)
}

注意:在实际中,忽视了上一个函数需必须返回的是promise数据,自以为两个函数只要用了async…await…就可以实现异步同步处理,即使你下一个函数不用的上一函数的数据,要实现异步进行同步处理,上一个函数还是要返回promise数据。

react中this.state

在react中在修改state数据后,同步某个函数使用修改的数据或者是在修改完state中的数据再调用某个函数,可进行如下处理:

...在react页面中
func1 = ()=>{
	console.log(this.state.data)
}
func = ()=>{
	let data = '12'
	this.state({
		data:data
	},()=>{
		this.func1()
	)
}

react-hooks中的useState

在react-hooks中在useState使用修改数据后,同步某个函数使用修改的数据或者是在修改完state中的数据再调用某个函数,可进行如下处理:

const [data,setData] = useState('')
const func1 =(value)=>{
	console.log(value)
}
const func= ()=>{
	const dataRe = "goods"
	setData((val)=>{
		func1(val)
		return dataRe ;// 是data没有修改前的数据,进行return dataRe 后,就修改data数据了
	})
}

在使用 上修改函数时 必须有return返回数据,如果不是修改data数据,只是想使用最新data数据(在其他函数中被修改),可直接返回val 即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值