如何在 JavaScript 中从 fetch 返回值到外部函数[重复]

问题描述 投票:0回答:1

我需要帮助在获取函数之外获取数据。

const  getSpecies =  (URL) => {
    fetch(URL)
    .then(response => response.json())
    .then(data =>{
        console.log(data.name);
    })
}

我正在从 API 获取数据以获得一个值。我不知道如何将此值作为函数值返回。我总是得到一个未定义的或

[Promise object]
。我这样尝试过:

const  getSpecies = async (URL) => {
    const  data = await fetch(URL);
    const  resoult = await data.json();
    const species = resoult.name;
    console.log(species);// value of name
    return species
}

我还尝试使用一些回调函数并在所有地方返回。

我在理解异步 JS 方面仍然存在问题。这就是为什么我需要帮助。

javascript asynchronous fetch-api
1个回答
0
投票

async-await 始终返回一个承诺,即使它什么也不返回。

无论您在哪里使用 getSpecies() 函数,请在其后执行

.then()
来获取数据。

getSpecies.then(data=>{console.log(data)})

在第一种情况下你已经做对了。您只需返回数据即可:)

const  getSpecies =  (URL) => {
    fetch(URL)
    .then(response => response.json())
    .then(data =>{
        console.log(data.name); // This should get the data here and you can return it here
       return data;
    })
}

如果您的 URL 响应正确,那么上面的代码应该可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.