gpt4 book ai didi

javascript - 在第一个请求失败后,如何设法发出不同的请求

转载 作者:行者123 更新时间:2023-12-02 23:49:41 25 4
gpt4 key购买 nike

我尝试获取一些对象,但问题是我需要首先检查缓存端点上是否有任何对象,如果没有,我应该从常规端点进行正常的获取。

到目前为止,我只能从以下位置获取:

  1. 正常端点并将所有内容设置为状态,
  2. 缓存端点并设置状态中的所有内容

任何混合使用这两种方法的尝试都以失败告终:(

如何混合使用这两种方法?

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 上为你的情况做了一个 fiddle :https://stackblitz.com/edit/js-eufm8h

如果有不明白的地方,请随时提问。

关于javascript - 在第一个请求失败后,如何设法发出不同的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55695737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com