Подождите 3 секунды, чтобы увидеть, если переменная изменена, а затем запустить что-то - PullRequest
0 голосов
/ 07 ноября 2018

Вот фрагмент кода JavaScript для распознавания речи с использованием Web Speech API. Этот фрагмент кода отвечает за перезапуск распознавания речи после того, как пользователь закончил говорить. Теперь я хочу изменить этот код, чтобы дать пользователям 3-секундные шансы произнести другое предложение, когда они увидели на своем экране переменную speechResult.

Вот сценарий:

1) Пользователь говорит, затем Распознавание голоса помещает свою речь в виде текста в переменную «speechResult» и отображает ее на своих экранах.

2) Мы ждем 3 секунды, чтобы дать пользователю еще один шанс, если он / она хочет произнести другое предложение.

3) Через 3 секунды без каких-либо изменений в «speechResult» мы запускаем некоторые операторы if для назначения переменной «isCorrect» со значениями true или false ...

 recognition.onend = function(event) {
      //Fired when the speech recognition service has disconnected.

recognition.start();

     // Some code to do: If "speechResult" variable changes, wait for 3 
      seconds then fire if statement below.//

 const debounce = (func, delay) => { 
let debounceTimer 
return function() { 
    const context = this
    const args = arguments 
        clearTimeout(debounceTimer) 
            debounceTimer 
        = setTimeout(() => func.apply(context, args), delay) 
} 
}  

debounce function() { 


if (speechResult == "who are you") {
    isCorrect= true;

} else {
    isCorrect= false;
}
} }, 3000); 

1 Ответ

0 голосов
/ 07 ноября 2018

Вы можете использовать setTimeout так:

recognition.onend = function(event) {
  //Fired when the speech recognition service has disconnected.
  recognition.start();

  setTimeout(processResult, 3000);
}

function processResult(speechResult) {
  if (speechResult == "who are you") {
    isCorrect= true;
  } else {
    isCorrect= false;
  }
}

setTimeout возвращает число, которое вы можете использовать с clearTimeout, если вы получили условие, которое должно отменить его. Или вы можете использовать функцию debounce.

...