Код ResponsiveVoice в SetInterval в Javascript: как остановить цикл? - PullRequest
0 голосов
/ 11 октября 2019

В настоящее время я работаю с системой очередей и работаю над голосовым оповещением с использованием отзывчивого голоса. Я поставил его на setInterval, но проблема в том, что он зацикливается, и голос никогда не останавливается.

     $( document ).ready(function() {
       setInterval(function() {
         $.ajax({
           url: "/getnewdata",
           cache: false,
         }).done(function(html) {
           $( '#data-container' ).html(html);
         });
         responsiveVoice.speak("{{ $new_call->letter }}-{{ $new_call->number }} please proceed to Counter {{ $new_call->counter_id }}")
       }, 3000);
    });

Я просто хочу, чтобы голосовой извещатель зацикливался только один раз. Другая проблема, когда данные вновь добавляются, он должен объявить данные. И другая проблема вместо, например, «№ 30», она говорит «№ 29».

1 Ответ

1 голос
/ 11 октября 2019

Я пробую это

$( document ).ready(function() {
    setInterval(function() {
      $.ajax({
        url: "/getnewdata",
        cache: false,
      }).done(function(html) {
          $( '#data-container' ).html(html);
          setTimeout(function() {
            function voiceStartCallback() {
                console.log("Voice started");
            }

            function voiceEndCallback() {
                console.log("Voice ended");
            }

            var parameters = {
                onstart: voiceStartCallback,
                onend: voiceEndCallback
            }
            responsiveVoice.speak("{{ $new_call->letter }}-{{ $new_call->number }} please proceed to Counter {{ $new_call->counter_id }}", parameters)
          }, 800);
      });
    }, 3000);    
  });

Когда я смотрю на консоль, появляется ошибка: Uncaught TypeError: Невозможно прочитать свойство «не рекомендуется» для null в ResponsiveVoice.a.speak (ключ responseivevoice.js?)= 8PNDpxy8: 117) в очереди: 178

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...