微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

graphql - 使用 apollo 客户端钩子停止挂起的请求

如何解决graphql - 使用 apollo 客户端钩子停止挂起的请求

我正在尝试取消待处理的请求。

我正在关注这个tutorial,我已经阅读了其他问题,但我无法取消任何请求。

我已经按照教程的说明配置了 apollo 客户端。

Apollo 客户端代码

const authMiddleware = new ApolloLink((operation,forward) => {
    const locale: LocaleString = getLocale();
    operation.setContext({
        headers: {
            "Accept-Language": locale,authorization: `Bearer ${localStorage.getItem("token")}` || null,"Content-Type": "application/json",},});

    return forward(operation);
});

const restAPILink: any = new RestLink({
    uri: `${getEnvVariable(REACT_APP_HIERARCHY_API)}/${apiVersion}/`,endpoints: { ... }
});


const httpLink = new HttpLink({
    uri: `${getEnvVariable(REACT_APP_GRAPHQL_API)}`,});

const composedLink: any = ApolloLinkFrom([
    cancelRequestLink,restAPILink,httpLink,]);

const apolloClient = new ApolloClient({
    cache: new InMemoryCache(),link: concat(authMiddleware,composedLink),connectToDevTools: true,queryDeduplication: false,});

阿波罗请求:

const getSupplyPoints = async () => {
    setLoading(true);
    setError(false);
    const response = await client.mutate({
        mutation: CONNECTIONS_DATA,variables: {...},context: {
            requestTrackerId: uuidNameSpace(
                "CONNECTIONS_DATA",RequestNameSpace
            ),});
    setLoading(false);
    setError(response?.errors ? true : false);
    setData(response?.data);
};

阿波罗取消请求:

这个文件tutorial 是一样的,在里面如果sould abort,我添加一个日志来显示我的日志。

在控制台中显示请求已中止,但在网络选项卡上没有显示取消之前的待处理请求。

我做错了什么??

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。