Javascript 在第一次请求状态为失败后,我如何才能提出不同的请求
我试图获取一些对象,但问题是,我需要首先检查缓存端点上是否有任何对象,如果没有,我应该从常规端点执行正常的获取 到目前为止,我只能从以下位置获取数据:Javascript 在第一次请求状态为失败后,我如何才能提出不同的请求,javascript,api,asynchronous,xmlhttprequest,Javascript,Api,Asynchronous,Xmlhttprequest,我试图获取一些对象,但问题是,我需要首先检查缓存端点上是否有任何对象,如果没有,我应该从常规端点执行正常的获取 到目前为止,我只能从以下位置获取数据: 正常端点并将所有内容设置为打开状态 缓存端点并将所有内容设置为打开状态 任何混合这两种方法的尝试都以失败告终:( 如何混合这两种方法 const getCache = async () => { try { const apiCall = await fetch(fetchCacheEndpoint) const dat
const getCache = async () => {
try {
const apiCall = await fetch(fetchCacheEndpoint)
const data = await apiCall.json()
return data
} catch (e) {
console.log(e);
}
}
const pageOne = getCache().then((result) => {
const convertedOBj = result.doSomeSeriousStuff()
this.setState({
desiredObj: convertedOBj
})
})
我本想做这样的事
const getCache = async () => {
try {
const apiCall = await fetch(fetchCacheEndpoint)
const data = await apiCall.json()
return data
} catch (e) {
console.log(e);
}
}
let convertedOBj
const pageOne = getCache().then((result) => {
if ((result === undefined) || (!result) || (result && !result.length > 0)) {
const makeRegularFetch = async () => {
const regularFetch = await fetch(regularEndPoint)
const data = await regularFetch.json()
}
const pageTwo = makeRegularFetch ().then((result) => {
convertedOBj = result.doSomeSeriousStuff()
this.setState({
desiredObj: convertedOBj
})
})
} else {
convertedOBj = result.doSomeSeriousStuff()
this.setState({
desiredObj: convertedOBj
})
}
})
在第一次获取(getCache)失败后,会有另一次获取(makeRegularFetch)到第二个端点,这总是很好的,但只有在第一次(getCache)返回空对象或任何类型的错误的情况下
如何处理此类操作?从您代码的第二部分可以看出,您从未执行过
pageOne
功能
请在定义后尝试pageOne()
但是我在stackblitz上为你的案子做了手脚:
如果你不明白什么,尽管问吧