Функция Javascript, как подождать некоторое время перед выполнением функции, которая принимает окончательное значение, если в течение этого времени произошли определенные изменения - PullRequest
0 голосов
/ 24 февраля 2019

Так что, в основном, у меня есть функция onWrite облака баз данных, которая при выполнении вызывает клиента, чтобы предупредить его, чтобы он открыл свою панель инструментов.Я использую Nexmo API.во всяком случае, что я пытаюсь сделать, чтобы заставить функцию ждать некоторое время, прежде чем она выполнится, потому что значение может измениться, если оно изменится (не вызывать клиента), если нет изменений, позвоните ему
следующим образом: -

// When new order is placed call the function  
// Wait for 10 min if there is any change
(if there is no change to that value) {
 call();
} else {
 if the value changed during that time stop the function
 return;
}

Я пробовал setTimeout (), но он выполняется при начальном значении, и я хочу, чтобы он выполнялся при окончательном значении через 10 минут.

1 Ответ

0 голосов
/ 24 февраля 2019

Я сделал это, я сделал счетчик на стороне клиента, и через 10 минут он сбрасывается в 0, используя setTimeout (), и если счетчик равен нулю, а значение все равно, вызовите client ();таким образом, при первом добавлении его в базу данных вызов не будет выполнен, поскольку счетчик не равен 0.
на моей клиентской стороне я сделал это

// update counter to 0 after 15 seconds
setTimeout(() => {
 firebase
  .database()
  .ref('the place where you want to update')
  .update({ counter: 0 })
}, 15000);

и в моей облачной функции

if (counter === 0 && state === 'CALL') {
  call();
} else {
  return;
}

таким образом, API будет вызывать клиента, если он оставил отложенные ордера в течение установленного периода времени.

...