在没风的地方找太阳  在你冷的地方做暖阳 人事纷纷  你总太天真  往后的余生  我只要你 往后余生  风雪是你  平淡是你  清贫也是你 荣华是你  心底温柔是你  目光所致  也是你 想带你去看晴空万里  想大声告诉你我为你着迷 往事匆匆  你总会被感动  往后的余生  我只要你 往后余生  冬雪是你  春花是你  夏雨也是你 秋黄是你  四季冷暖是你  目光所致  也是你 往后余生  风雪是你  平淡是你  清贫也是你 荣华是你  心底温柔是你  目光所致  也是你
jQuery火箭图标返回顶部代码 - 站长素材

react 结合 Promise 和 async await 解决多个异步请求 后统一设置状态问题

现在需要解决以下问题:

我们有两个和多个前后端交互请求,我们需要在这两个请求都完成之后去让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({
                //
            })
        }
    })
}

 

posted @ 2020-11-27 14:59  艺术诗人  阅读(2494)  评论(0编辑  收藏  举报