现在需要解决以下问题:
我们有两个和多个前后端交互请求,我们需要在这两个请求都完成之后去让runder渲染,实现思路如下:
1、定义一个loading的state,给定初始值为true,在runder函数中,如果loading为true则直接返回
this.state = { loading: true }
2、将两个或多个请求使用Promist.all([]),做并发处理。
3、然后使用async await 等待请求处理完成后将loading置为false。
实现代码如下:
getAsyncData() { return Promise.all([ this.getCurriculumVitae(), this.growthPathDate() ]) } async asyncFun() { await this.getAsyncData() this.setState({loading: false}) } getCurriculumVitae() { return request.get('xxxx',{//这里必须使用return返回异步请求 params: { // } }).then((resp:any) => { if(resp && resp.code == "200" && resp.data){ this.setState({ // }) } }) } growthPathDate = () => { return request.get('xxxx',{//这里必须使用return返回异步请求 params: { // } }) .then((resp:any) => { if(resp && resp.code == '200' && resp.data) { this.setState({ // }) } }) }