Нашел я пример использования 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");
Что не так? Где поправить что бы заработало как мне нужно?