首页 > 其他分享 >promise与async/await连用全部请求结束时获取请求结果

promise与async/await连用全部请求结束时获取请求结果

时间:2024-03-18 19:55:52浏览次数:16  
标签:const 请求 res await promise error ciId modelId

async/await获取请求结束时机,拿到结果(非promise类型的结果)

  const getModalData = useCallback(async () => {
        const result = await sendRequest(currentCabinet)
        setData(result)
    }, [currentCabinet])

定义promise:因为此处的请求方法结果返回的时promise类型数据(待定状态),故可以直接放入promise.all数组中

  const sendRequest = (data) => {
        const modelId = data.modelId;
        const ciId = data.ciId;
        return new Promise((resolve, reject) => {
            Promise.all([
                getIndexInfo({ modelId, ciId }),
                getConfigInfo({ modelId, ciId }),
                getUpdateInfo({ modelId, ciId }),
                getWarnInfo({ modelId, ciId }),
                getWorkOrderInfo({ modelId, ciId }),
                getInspectionList({ assetsId: ciId }),
                getUbitUsageInfo(ciId),
                getPlanOperationTableData({ assetsId: ciId, field: 'one', order: 'd' }),
                getRelationData({ ciId: ciId })
            ]).then(([indexInfo, configData, updateInfo, warnInfo, workOrderInfo, inspectionList, ubitUsageInfo, planOperationTable, relationData]) => {
                resolve({ indexInfo, configData, updateInfo, warnInfo, workOrderInfo, inspectionList, ubitUsageInfo, planOperationTable, relationData });
            }).catch(error => {
                reject(error);
            });
        });
    };

示例请求方法:

  @action
    getIndexInfo = async (params) => {
        try {
            const res = await fetchIndexInfo(params);
            console.log(res);
            if (res.code === 100000) {
                return res.data
            } else {
                console.error(res.msg);
                return []
            }
        } catch (error) {
            console.error(error);
            return []
        }
    };

 

标签:const,请求,res,await,promise,error,ciId,modelId
From: https://www.cnblogs.com/Simoon/p/18081270

相关文章

  • feigni请求添加拦截器
    @FeignClient的configuration属性:Feign注解@FeignClient的configuration属性,可以对feign的请求进行配置。包括配置Feign的Encoder、Decoder、Interceptor等。feign请求添加拦截器,也可以通过这个configuration属性来指定。feign请求拦截器RequestIntercept......
  • go语言请求http接口示例 并解析json
    本例请求了天气api接口对接流程注册一个账号,对接免费实况天气接口阅读接口文档http://tianqiapi.com/index/doc?version=day请求接口解析json开发流程创建一个json.go文件需要引入的包import( "encoding/json" "fmt" "io/ioutil" "net/http")定义Wea......
  • 【SpringBoot】请求与响应参数 IoC与DI 总结
    文章目录①——请求——一、简单参数@RequestParam1.1参数与形参命名相同1.2参数与形参命名不同二、实体参数2.1简单实体对象2.2复杂实体对象三、数组集合参数3.1数组3.2集合@RequestParam四、日期参数@DateTimeFormat五、JSON参数@RequestBody六、路......
  • 全栈的自我修养 ———— js如何处理并发的大量请求??
    假如一个事件段内传过来一百多个请求,我们该处理大量并发请求呢过程实现验证假如现在允许的并发量为4,有一百个请求!假如现在允许的并发量为1,有一百个请求!源码过程实现定义一个方法,这个方法会放入你在这个时间段接收到的请求,这里100位例!consturlArr=[]......
  • Java面试题:假设你正在开发一个Java后端服务,该服务需要处理高并发的用户请求,并且对内存
    Java内存优化、线程安全与并发框架:综合面试题解析Java作为一种广泛使用的编程语言,其内存管理、多线程和并发处理是开发者必须掌握的核心技能。为了全面评估候选人在这些领域的知识水平和实际应用能力,我们设计了一道综合性的面试题。本文将对这道题目进行深入分析,从核心知识......
  • std::promise返回的是future对象
    在C++中,std::promise对象调用get_future()方法返回一个std::future对象,而不是指针、引用或其他类型的对象。std::future对象用于获取与std::promise对象相关联的异步操作的结果。std::promise和std::future是C++标准库中的一部分,用于处理异步操作的结果。std::promise对象可以在......
  • 直播带货源码,异步处理中会处理两次请求
    直播带货源码,异步处理中会处理两次请求从序列图上可以看到SpringMVC在处理异步请求时,DispatcherServlet会处理两次请求具体来看HandlerAdapter的处理过程//根据HandlerMethod解析参数并完成过程调用得到一个ModelAndViewprivateModelAndViewinvokeHandleMethod(Ht......
  • promise
    [函数对象]小括号左边一定是函数,小数点左边一定是对象,具备二者特性的对象是函数对象functionFn(){}//函数Fn.prototype//函数对象Fn.bind({})//函数对象constfn=newFn()//Fn前方有new关键字,此时Fn为构造函数,fn为实例对象,简称对象只有函数对......
  • 你是怎么理解ES6中 Promise的?使用场景?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助一、介绍Promise,译为承诺,是异步编程的一种解决方案,比传统的解决方案(回调函数)更加合理和更加强大在以往我们如果处理多层异步操作,我们往往会像下面那样编写我们的代码doSomething(function(result){doSomethi......
  • JavaScript逆向之iwencai请求头参数加密过程解析
    iwencai网站实战url:http://iwencai.com/unifiedwap/home/index打开开发者工具,在搜索框中随便输入关键词,看流量包。(如果想将开发者工具的位置进行变换的,可以点击三个点进行切换)只有一条数据包,看看请求数据和响应数据。请求头中有一个特殊的Hexin-V,它的值与Cookie中的v的值......