Not getting the query result returned on time. Should I consider subscription (absinthe/frontend question)

I was hoping to get some insight into a problem I’m running into. What I’m trying to do is when a user is typing, they’ll get updated array response from the query call. At the moment I’m using query to be done each time an onChange gets performed which is causing a weird problem. The problem is:

input: t => searches result
input: te => backend shows no search being done
input: te3 => backend shows a search for te which was from before.

It is as if there is a block of some sort and will only run after the 2nd input. Was hoping to get some insight into what is occurring and if it’ll be better to use Subscription in this case? (I came to an understanding it was mostly used for mutation changes.

FRONTEND LOGIC:

  const PostTypeSelection = ({ client }) => {
  const [search, updateSearch] = useState("");
  const [tags, updateTags] = useState([]);

  const handleChange = e => {
    const { value } = e.target;
    client
      .query({
        query: GET_TAGS,
        variables: { search: search }
      })
      .then(({ data }) => {
        updateTags(data.get_tags);
      });

    updateSearch(value);
  };

If there is more information required on my end. Please let me know and thank you for the help on this matter and understanding if I should be considering subscriptions.

If I had to do this I would debounce and throttle the request… and I would probably use RxJS for this.