Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 集中式Axios API取消_Javascript_Reactjs_Api_Axios - Fatal编程技术网

Javascript 集中式Axios API取消

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

我有一个React应用程序和一个集中式API类。所以我所做的所有API调用都要经过APIClass。我使用props调用API类的特定函数,该函数使用APICaller获取数据并异步返回数据。问题是我需要为它实现axios cancel令牌,但不确定如何实现它。在下面的设置中,callAPIone将返回数据,而callAPItwo将失败。我怎样才能让第二个电话取消第一个

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(“请求已取消”)?在这种情况下,我必须创建两个源变量,然后。。?