首页 > 其他分享 >除了Promise.all(),使用Promise.allSettled()方式请求,避免使用循环请求

除了Promise.all(),使用Promise.allSettled()方式请求,避免使用循环请求

时间:2023-12-13 17:45:29浏览次数:31  
标签:status 请求 url item Promise getFilePromises allSettled name

 const getFilePromises: Promise<any>[] = [];
 fileIds.forEach((item) => {
    getFilePromises.push(getFileInfoApi({ id: item }));
  });
  Promise.allSettled(getFilePromises)
    .then((res) => {
      this.fileList = res.map((item, index) => {
        if (item.status == 'fulfilled' && item.value?.data) {
          const { name, url, id, suffix } = item.value?.data;
          return { uid: id, name, status: 'done', url, fileType: suffix };
        } else {
          return {
            uid: fileIds[index],
            name: '加载错误',
            status: 'error',
            url: ''
          };
        }
      });
    })
    .catch((res) => {
      this.fileList = fileIds.map((item) => {
        return { uid: item, name: '加载错误', status: 'error', url: '' };
      });
    });

1.创建getFilePromises的promise类型变量。
2.把请求通过同步循环的方式push到变量中。
3.在使用Promise.allSettled(变量)一次性请求拿到所有数据。

标签:status,请求,url,item,Promise,getFilePromises,allSettled,name
From: https://www.cnblogs.com/songkomei/p/17899579.html

相关文章

  • Fluter 网络请求图片403 防盗链处理解决办法
    很多网站都会做防盗链处理我们请求使用flutter请求是403浏览器请求是正常的原因在判定了用户的请求头user-agent处理办法去掉原有的请求头使用浏览器的请求头修改源码assert(key==this);finalUriresolved=Uri.base.resolve(key.url);......
  • get请求数组参数,格式转换
    get请求转码关于qs插件qs是一个增加了一些安全性的查询字符串解析和序列化字符串的库。可以进行对象与字符串之间的一个转换。安装qsaxios中自带qs无需下载,若单独下载只需npminstallqs即可使用组件中单独引入importqsfrom'qs'或者全局引入(main.js)Vue.prototyp......
  • Nginx——记录post请求回执405的一种解决方式
    前言:nginx做反向代理,一直报405,由于之前配置过,一直是没问题的,这次一直报405,搞了一下午,终于找到原因了是因为开启了多个ngixn导致的。解决办法:cmd杀掉nginx后台进程命令杀掉nginx后台nginx常用命令taskkill/f/t/imnginx.exenginx 常用命令startnginx#启动Ng......
  • 恒创科技:是什么导致网络服务器变慢?(服务器请求超时)
    ​服务器之间的网络请求和响应的速度可能因多种因素而有很大差异。这个问题没有一刀切的答案,因为这取决于具体情况和网络通信的性质。有几个因素可能会导致网络服务器速度缓慢,包括:硬件问题:服务器硬件本身可能已经故障或资源不足,这可能包括处理器核心或线程不足、内......
  • postman 简单使用,设置全局请求头,登入后自动替换全局token
    postman简单使用,设置全局请求头,登入后自动替换全局token背景1.使用postman没次请求需要带上请求头(每个请求都加一下麻烦),2.token有过期时间,没次都要替换(人为替换全局变量麻烦),直接调用一下登入请求直接替换环境1.设置集合下面每个请求全局请求tokenpm.request.addH......
  • Linux上使用Python的requests库进行HTTP请求
    在Linux上使用Python的requests库进行HTTP请求是一种非常方便和高效的方式。requests库是一个第三方库,用于发送HTTP请求并获取响应。下面是一个简单的示例,演示如何使用requests库发送GET请求并获取响应。首先,你需要安装requests库。你可以使用pip命令来安装它:bash复制代码pipinsta......
  • 记录--前端中 JS 发起的请求可以暂停吗
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助在前端中,JavaScript(JS)可以使用XMLHttpRequest对象或fetchAPI来发起网络请求。然而,JavaScript本身并没有提供直接的方法来暂停请求的执行。一旦请求被发送,它会继续执行并等待响应。尽管如此,你可以通过一些技巧或......
  • 使用 Curl 进行网络请求的实战指南
    Curl(ClientforURLs)是一款强大的命令行工具,用于进行网络请求。它支持多种协议,包括HTTP、HTTPS、FTP等,使其成为开发者和系统管理员的重要工具。在这篇博文中,我们将深入了解Curl的一些常见用法,并通过实际示例演示如何使用Curl进行网络请求。1.发送简单的HTTPGET请求curlh......
  • FastAPI-请求参数与验证
    最近想搞一下接口,希望能简单上手,前后端分离,大致看了一遍SpringBoot,Gin,NodeJs,Flask,Django,FastAPI等,感觉还是用Python语言来写比较简单呀,关键点在于它语法清晰,能让我直接思考业务逻辑,而不是各种语法折腾.FASTAPI简介Documentation:https://fastap......
  • 内核维护者手册 - 创建拉取请求【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/maintainer/pull-requests.html创建拉取请求本章描述了维护者如何创建并提交拉取请求给其他维护者。这对于将一个维护者的更改传输到另一个维护者的树中非常有用。这份文档是由TobinC.Harding(当时并不是一位经验丰富的维护者)根据Greg......