Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.05.2017, 18:21
Новичок на форуме
Отправить личное сообщение для SiriusED Посмотреть профиль Найти все сообщения от SiriusED
 
Регистрация: 27.05.2017
Сообщений: 9

Async\await + typescript, Функция зацикливается
Нашел я пример использования async\await, но я не догоню как это все работает, и у меня вторая версия функции где есть проверка на true, тупо зацикливается и так и потоянно выдает ответ, когда проверка срабатывает в true.

Вот коды функций:
// Работает как мне и надо
    speechIsEnded() {
        return new Promise<number>(function(speechEnded, rejected) {
            setTimeout(function() {
                console.log("Waiting....");
                    speechEnded(11111);
            }, 1000)
        });
    }
 
    // Не работает
    speechIsEnded() {
        return new Promise<number>(function(speechEnded, rejected) {
            setTimeout(function() {
                console.log("Waiting....");
                if (window.speechSynthesis.speaking) // Для теста проверяю на speaking == true
                {
                    speechEnded(11111); // вываливает в консоль постоянно когда speaking == true, и так тут и сидит на этой проверке каждую секунду
                }
            }, 1000)
        });
    }


Код вызова:
await this.speechIsEnded().then(function(response) {
            console.log(response); // При втором варианте функции постоянно выводит в консоль ответ, и при этом не завершает проверку, 
        });
 
        console.log("End");


Что не так? Где поправить что бы заработало как мне нужно?
Ответить с цитированием
  #2 (permalink)  
Старый 03.06.2017, 09:17
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Не знаю как работает await, но моя "телепатия" подсказывает что надо бы добавить либо вызов rejectrd в блоке else в проверке, либо вызов catch при запуске проверки, либо и то и другое.
Ответить с цитированием
  #3 (permalink)  
Старый 04.06.2017, 14:02
Новичок на форуме
Отправить личное сообщение для SiriusED Посмотреть профиль Найти все сообщения от SiriusED
 
Регистрация: 27.05.2017
Сообщений: 9

Да да, сделал через setInterval(), а внутри реализовал через промисы. Все работает как нужно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция вызывается несколько раз KiberQ Общие вопросы Javascript 11 01.03.2017 15:45
Функция запускается кнопкой, но не запускается другой функцией или событием IndiraVarma Общие вопросы Javascript 6 30.09.2016 14:58
не вызывается функция при изменении option soft4you Общие вопросы Javascript 1 23.07.2014 17:41
AJAX функция для новых html-элементов broadcast77 AJAX и COMET 25 03.03.2014 14:01
функция и несуществующий id Ankh Элементы интерфейса 4 10.02.2012 23:49