zoukankan      html  css  js  c++  java
  • 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({
                    //
                })
            }
        })
    }
  • 相关阅读:
    asp.net保存远程图片
    JS中的转义字符
    SQL_统计某列的和
    SQL Server 出错自动回滚
    SQL中的循环语句_类似FOR循环
    转 C# 控制IE
    抓取html 写正则
    正则截取内容
    用于测试的字符串
    C#关闭IE相应的窗口 .
  • 原文地址:https://www.cnblogs.com/art-poet/p/14048007.html
Copyright © 2011-2022 走看看