Реагировать на собственный протокол asyncstorage и консоли apollo-link, который не вызывается в обещании - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь console.log в функции authLink, но не вижу никакого вывода журнала консоли. Как будто сама функция никогда не вызывается.

У кого-нибудь есть идеи, почему я не вижу вывода console.log при вызове его внутри authLink?

import { ApolloClient } from "apollo-client";
import { useQuery } from "@apollo/react-hooks";
import { InMemoryCache } from "apollo-cache-inmemory";
import { createHttpLink } from "apollo-link-http";
import { setContext } from "apollo-link-context";

import AsyncStorage from "@react-native-community/async-storage";

import { resolvers, typeDefs } from "./resolvers";

const cache = new InMemoryCache();

const httpLink = createHttpLink({
  uri: "https://foobar"
});

const authLink = setContext(async (_, { headers }) => {
  console.log("In here!");
  let authToken = await AsyncStorage.getItem("authToken");
  if (authToken !== null) {
    cache.writeData({
      data: {
        isLoggedIn: true,
        authToken: authToken,
      },
    });
  } else {
    cache.writeData({
      data: {
        isLoggedIn: false,
        authToken: "",
      },
    });
  }

  return {
    headers: {
      ...headers,
      authorization: authToken ? `Bearer ${authToken}` : "",
    },
  };
});

const client = new ApolloClient({
  cache: cache,
  link: authLink.concat(httpLink),
  typeDefs: typeDefs,
  resolvers: resolvers,
});

export default client;
...