【前端】使用Promise达到循环调用接口的效果

Promise.all()

要使用Promise.all调用同一个异步方法多次并将所有结果收集起来,你可以创建一个包含该方法调用的Promise数组,然后将这个数组传递给Promise.all。示例:

假设你有一个异步方法fetchData(id),你想针对一组ID调用它并等待所有结果。

javascript 复制代码
async function fetchData(id) {
    // 这里是你的异步操作,比如API调用
    // 示例中使用setTimeout模拟延迟
    return new Promise((resolve) => {
        setTimeout(() => {
            resolve(`Data for ID ${id}`);
        }, 1000);
    });
}

// ID列表
const ids = [1, 2, 3, 4, 5];

// 使用map遍历ID列表,为每个ID调用fetchData方法,并收集所有的Promise
const promises = ids.map(id => fetchData(id));

// 使用Promise.all等待所有Promise完成
Promise.all(promises)
    .then(results => {
        console.log("所有请求的结果:", results);
    })
    .catch(error => {
        console.error("其中一个请求失败:", error);
    });

Promise.all会等待所有Promise完成(不论是成功还是失败)。当所有Promise都解决(resolve)时,.then()会被调用,并且会接收一个数组,其中包含了所有Promise解决的结果。如果有任何Promise被拒绝(reject),.catch()会立即被调用,且后续的Promise不会再执行。

相关推荐
HAPPY酷8 小时前
std::pair` 与 `std::map` 基础
开发语言·c++·算法
懒神降世8 小时前
基于iVentoy的PXE服务器的部署实战指南
运维·服务器·开发语言·云原生·vmware·openeuler·iventoy
山东布谷网络科技8 小时前
对标Yalla和Chamet:海外直播语聊APP中多人派对房的关键技术细节
java·开发语言·人工智能·php·语音识别·软件需求·海外电商系统开发
Trae1ounG8 小时前
这是json
前端·javascript·vue.js
Dxy12393102168 小时前
Python 将 JSON 字符串转换为字典
前端·python·json
喜欢吃燃面8 小时前
基础算法:高精度
开发语言·c++·学习·算法
3GPP仿真实验室8 小时前
【Matlab源码】6G候选波形:OFDM-IM 增强仿真平台 GIM、MM、IQ
开发语言·网络·matlab
xuxie998 小时前
【无标题】
java·开发语言
叫我一声阿雷吧8 小时前
【JS实战案例】实现图片懒加载(基础版)原生JS+性能优化,新手可直接复现
开发语言·javascript·性能优化·js图片懒加载
摇滚侠8 小时前
基于 session 的登录认证方式,基于 token 的登录认证方式,对比
java·开发语言·intellij-idea