首页 > 解决方案 > 如何访问和使用 do while 循环的返回值?

问题描述

我正在尝试从 do while 循环访问返回数据,但我无法这样做。

我已将信息存储在一个新变量(星舰)中,然后返回此变量,但它说未定义星舰。我看到这可能是一个范围界定问题,我该如何解决这个问题?

async function getData() {

    const allResults = [];
    let url = 'https://swapi.co/api/starships/';

    do {
        const res = await fetch(url);
        const data = await res.json();
        url = data.next;
        allResults.push(...data.results);
        console.log(allResults);
    } while (url !== null)

    let starships = allResults;
    return starships;
}

console.log(starships);

标签: javascriptarraysreturn-valuedo-while

解决方案


您需要获取从getData. async/await使用您拥有的结构执行此操作的最明显方法就是await

async function getData() {
    const allResults = [];
    let url = 'https://swapi.co/api/starships/';

    do {
        const res = await fetch(url);
        const data = await res.json();
        url = data.next;
        allResults.push(...data.results);
        console.log(allResults);
    } while (url !== null)

    let starships = allResults;
    return starships;
}

async function doTheDo() {
  const test = await getData();
  
  console.dir(test);
}

doTheDo();


推荐阅读