Javascript 如何同时获得多个API?
对于我的项目,我必须在我的项目中获得几个API,这些API与其他API链接,即它们具有相同的数据 这是我的密码Javascript 如何同时获得多个API?,javascript,reactjs,react-native,get,fetch,Javascript,Reactjs,React Native,Get,Fetch,对于我的项目,我必须在我的项目中获得几个API,这些API与其他API链接,即它们具有相同的数据 这是我的密码 导出默认类App扩展React.Component{ 建造师(道具){ 超级(道具); } componentDidMount(){ 我保证([ getData(), getData(“?第2页”), ]) .然后([dataSource1,dataSource2])=>{ 这是我的国家({ 孤岛加载:false, isLoading2:false, 数据源1, 数据源2, });
导出默认类App扩展React.Component{
建造师(道具){
超级(道具);
}
componentDidMount(){
我保证([
getData(),
getData(“?第2页”),
])
.然后([dataSource1,dataSource2])=>{
这是我的国家({
孤岛加载:false,
isLoading2:false,
数据源1,
数据源2,
});
})
.catch((错误)=>{
//处理错误
});
}
render(){
const getData=(子路径=“”)=>fetch(`https://api.rawg.io/api/games${subpath}`)
.then(res=>res.json())
。然后(result=>result.results);
console.log(getData)
}
我尝试使用axios,但没有成功
当我删除注释时,它只显示第二次fetch…对于每个API,您需要两个单独的
fetch
调用。要等待两者都完成,请使用Promise.all
const getData = (subpath = '') => fetch(`https://api.rawg.io/api/games${subpath}`)
.then(res => res.json())
.then(result => result.results);
你能详细解释一下你的意思吗,获得多个api?请提及api是如何相互链接的。提供的示例几乎无法解释任何事情。是url的延续,即2个api具有相同的json结构和相同的数据名。否则,api太大了。我在顶部编辑了我的代码,使用了你的code,它给了我一条错误消息,
getData未定义。
。此消息来自承诺。所有都位于`componentDidMount()`.对不起,如果这个问题有点傻,这是我第一次使用react native。听起来你忘了定义我在答案中的代码中定义的getData
函数。你不必做getData
函数-你可以写出单独的fetch
调用-但那会很湿。最好是写cod如果可能的话。不,把它放在承诺的某个地方。所有的调用都可以看到它-在它的外部作用域中的某个地方,或者在componentDidMount
中,或者在与类定义相同的级别上,或者在其他外部的某个地方!在我的呈现中,我在控制台.log()
中调用getData。在内部,我有两个承诺:[[PromiseState]]
和[[PromiseSult]]
,我想访问[[PromiseSult]]
来获取数组,但我无法…因为有两个数组?
componentDidMount() {
Promise.all([
getData(),
getData('?page=2'),
])
.then(([dataSource1, dataSource2]) => {
this.setState({
isLoading: false,
isLoading2: false,
dataSource1,
dataSource2,
});
})
.catch((error) => {
// handle errors
});
}