¿Cómo restablecer el tiempo de espera en Javascript / jQuery?

Tengo un campo A en mi página web que, cuando el usuario lo edita, invoca una llamada a la API (usando jQuery), que actualiza el campo B. Después de la edición, se debe llamar a la API cada 10 segundos para actualizar el campo B nuevamente . Actualmente hago esto usando:

setTimeout(thisFunction, 10000);

El problema es que este tiempo de espera se establece cada vez que el usuario edita el campo A, que después de editar el campo A un par de veces hace que el tiempo de espera se establezca varias veces y se llame a la API muchas veces. Esto hace que el sitio web se vea bastante estresante.

Lo que me gustaría hacer es establecer un nuevo tiempo de espera cada vez que se edita el campo, ya sea por el campo de edición del usuario A o por el intervalo que alcanza los 10 segundos y, por lo tanto, sondea la API. En otras palabras; el campo debe actualizarse si el campo B no se actualizó durante 10 segundos o más.

Por último, si el usuario hace clic en el botón C, la encuesta debería detenerse.

Entonces mi pregunta; ¿Cómo puedo ejecutar una función para actualizar el campo B si ese campo B no se actualizó durante 10 segundos o más y cómo detengo el sondeo cuando quiero (cuando el usuario hace clic en otro botón) ¡Todos los consejos son bienvenidos!

Respuestas a la pregunta(2)

Su respuesta a la pregunta