【问题标题】:React async fetch with 503 Service Unavailable使用 503 Service Unavailable 响应异步获取
【发布时间】:2021-11-18 20:49:48
【问题描述】:

我正在尝试从“https://randomuser.me/api”获取 20 个随机用户数据,在某些情况下,我收到 503 Service Unavailable 错误。

我试图用这种代码解决问题。

async function fetchDriver() {
    const driver = await fetch(driverUrl)
        .then((response) => {
            if (response.status === 200) {
                return response.json();
            }
            if (response.status === 503) {
                return fetchDriver();
            }
        })
        .then((data) => console.log(data))
        .catch((error) => {
            console.log(error);
            fetchDriver();
        });
    return driver;
}

do {
    const geoPosition = fetchGeoPosition();
    const phoneNumber = fetchPhoneNumber();
    const licenseNumber = fetchLicense(3);
    const speed = fetchSpeed(60, 200);
    const driver = fetchDriver();
    const first = driver.name.first;
    const last = driver.name.last;
    fetchedCars.push({
        licenseNumber,
        first,
        last,
        phoneNumber,
        geoPosition,
        speed,
        favorite: false,
        more: false,
    });
} while (fetchedCars.length < 20);

但是console.log(data) 在某些情况下仍然显示 undefined 的值,我只是不知道该怎么处理。

【问题讨论】:

    标签: javascript reactjs api fetch random-api


    【解决方案1】:

    随机用户 API 有一个速率限制器。使用它在一个请求中获取多个用户(例如 20 个用户):

    https://randomuser.me/api/?results=20

    查看文档here

    This GitHub 线程提到了速率限制和我包含的解决方案

    【讨论】:

    • @BartoszKról 这个答案有帮助吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多