Javascript 在使用.fetch时,我是否可以将现有的.fetch函数链接到一个更大的同步查询中?
我知道如何将所有这些链接到一个函数中。我对如何将以下函数的返回值合并到另一个函数中感到困惑Javascript 在使用.fetch时,我是否可以将现有的.fetch函数链接到一个更大的同步查询中?,javascript,promise,fetch,Javascript,Promise,Fetch,我知道如何将所有这些链接到一个函数中。我对如何将以下函数的返回值合并到另一个函数中感到困惑 function queryPlayers() { fetch("foo", apiParams) .then(res => { if(res.ok){ return res.json() } else { return fetch("backup_bar", apiParams) .then(
function queryPlayers() {
fetch("foo", apiParams)
.then(res => {
if(res.ok){ return res.json() }
else { return fetch("backup_bar", apiParams)
.then(res => { return res.json() }
)}
})
.then(playerData => { return playerData })
.catch(err => console.log(err))
}
我所要做的就是获取playerData
,或者接收到的JSON,并在承诺解决后将其作为参数放入另一个函数中。我对arrow的功能和承诺还很陌生,我觉得我错过了一些东西
function getExtraData(playerData){
fetch("some_foo" + playerData)
.then(newData => doStuff())
}
作为参考,以下是我对这个问题的超级基本答案:
function queryPlayers() {
console.log("Querying players...");
return fetch("https://api-v2.royaleapi.com/top/players", apiParams)
.then(res => {
if(res.ok){ return res.json() }
else { return fetch("http://127.0.0.1:8000/js/players.json", apiParams)
.then(res => res.json()
)}
})
.then(playerData => {
return playerData;
})
.catch(err => console.log(err))
}
function queryData(){
queryPlayers()
.then(data => console.log(data))
}
$(function(){
queryData();
});
是的,您只是在
queryPlayers
函数的开头缺少了一个return
:函数queryPlayers(){return fetch(“foo”),然后您只需要queryPlayers()。然后(getExtraData)
Wow,我实现了它,它工作得很好……我不知道它需要额外的返回,你的。那么(playerData=>{return playerData})
是多余的。你可以完全忽略它。