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"); Что не так? Где поправить что бы заработало как мне нужно? |
Не знаю как работает await, но моя "телепатия" подсказывает что надо бы добавить либо вызов rejectrd в блоке else в проверке, либо вызов catch при запуске проверки, либо и то и другое.
|
Да да, сделал через setInterval(), а внутри реализовал через промисы. Все работает как нужно.
|
Часовой пояс GMT +3, время: 00:29. |