You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在fetch请求中使用两个then获取Rick&Morty API返回的两个角色信息

解决方案

现有代码仅发起单次API请求,获取到的是同一个角色的信息,所以赋值给两组DOM元素时内容完全重复。你可以利用Rick&Morty API原生支持的多ID查询能力,一次请求拿到两个不同角色的数据,效率比发起两次独立请求更高。

完整修改后代码

// 生成随机角色ID
gerarValorAleatorio = () => {
    return Math.floor(Math.random() * 671);
}

pegarPersonagem = () => {
    // 生成两个独立的随机ID
    let id1 = gerarValorAleatorio();
    let id2 = gerarValorAleatorio();
    // 多ID查询直接用英文逗号拼接在请求路径中即可
    return fetch(`https://rickandmortyapi.com/api/character/${id1},${id2}`, {
        method:'GET',
        headers: {
            Accept: 'application/json',
            "Content-type": 'application/json'
        }
    }).then((response) => response.json())
      .then((data) => {
        // 接口返回长度为2的数组,第一个元素对应id1的角色信息
        imagem.src = data[0].image;
        imagem.alt = data[0].name;
        nome.innerHTML = data[0].name;

        // 第二个元素对应id2的角色信息
        imagem2.src = data[1].image;
        imagem2.alt = data[1].name;
        nome2.innerHTML = data[1].name;
    })
}

补充说明

如果需要避免两个随机ID重复,可以增加去重逻辑,示例如下:

let id1 = gerarValorAleatorio();
let id2;
do {
  id2 = gerarValorAleatorio();
} while(id1 === id2)

内容的提问来源于stack exchange,提问作者Bruno Henrique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 22:36:04