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, время: 01:45. |