Javascript 集中式Axios API取消
我有一个React应用程序和一个集中式API类。所以我所做的所有API调用都要经过APIClass。我使用props调用API类的特定函数,该函数使用APICaller获取数据并异步返回数据。问题是我需要为它实现axios cancel令牌,但不确定如何实现它。在下面的设置中,callAPIone将返回数据,而callAPItwo将失败。我怎样才能让第二个电话取消第一个Javascript 集中式Axios API取消,javascript,reactjs,api,axios,Javascript,Reactjs,Api,Axios,我有一个React应用程序和一个集中式API类。所以我所做的所有API调用都要经过APIClass。我使用props调用API类的特定函数,该函数使用APICaller获取数据并异步返回数据。问题是我需要为它实现axios cancel令牌,但不确定如何实现它。在下面的设置中,callAPIone将返回数据,而callAPItwo将失败。我怎样才能让第二个电话取消第一个 let i = await this.apiClass.callAPIone(1); let y = await this.a
let i = await this.apiClass.callAPIone(1);
let y = await this.apiClass.callAPIone(2,cancel);
然后在apiClass中,我有如下函数
callAPIone = async (param,cancel) => {
return await ApiCaller(param,cancel)
}
那么在ApiCaller内我有
async function ApiCaller(param,apiCancel) {
let source = axios.CancelToken.source();
if (apiCancel) source.cancel("Request canceled.");
let params = param
return await axios
.get(apiRoute, { headers, params, cancelToken: source.token })
.then((response) => OnSuccess(response))
.catch((e) => OnError(e.message));
}
避免然后用异步/等待捕获任何原因?那么我如何才能正确地记录错误?
wait
解包承诺,您可以使用标准的try..catch
apiCancel
取消第一组请求。另一方面,source.cancel(“请求已取消”)
应在ApiCaller
功能中退出。i、 e:一个全局变量或外部实例。噢,谢谢@Daniel所以我做let source=axios.CancelToken.source()
在App.js中,如果我想取消它,我会执行source.cancel(“请求已取消”)代码>?在这种情况下,我必须创建两个源变量,然后..?避免使用async/Await,为什么?那么我如何才能正确地记录错误?wait
解包承诺,您可以使用标准的try..catch
apiCancel
取消第一组请求。另一方面,source.cancel(“请求已取消”)
应在ApiCaller
功能中退出。i、 e:一个全局变量或外部实例。噢,谢谢@Daniel所以我做let source=axios.CancelToken.source()
在App.js中,如果我想取消它,我会执行source.cancel(“请求已取消”)代码>?在这种情况下,我必须创建两个源变量,然后。。?