Como redefinir o tempo limite em Javascript / jQuery?

Eu tenho um campo A na minha página da Web que, quando editado pelo usuário, chama uma chamada de API (usando jQuery), que atualiza o campo B. Após a edição, a API deve ser chamada a cada 10 segundos para atualizar o campo B novamente . Atualmente, faço isso usando:

setTimeout(thisFunction, 10000);

O problema é que esse tempo limite é definido toda vez que o usuário edita o campo A, que após editar o campo A algumas vezes faz com que o tempo limite seja definido várias vezes e a API seja chamada várias vezes. Isso faz com que o site pareça bastante estressante.

O que eu gostaria de fazer é definir um novo tempo limite sempre que o campo é editado, seja pelo campo de edição do usuário A ou pelo intervalo atingindo 10 segundos e, dessa forma, pesquisando a API. Em outras palavras; o campo deve ser atualizado se o campo B não for atualizado por 10 segundos ou mais.

Por fim, se o usuário clicar no botão C, a pesquisa deverá parar.

Então minha pergunta; como posso executar uma função para atualizar o campo B se esse campo não foi atualizado por 10 segundos ou mais e como interrompo a pesquisa quando quero (quando o usuário clica em outro botão) Todas as dicas são bem-vindas!

questionAnswers(2)

yourAnswerToTheQuestion