Wpis z mikrobloga

#javascript #webdev #programowanie #frontend
W sumie nie używałem zbyt Promise. Stąd pytanie.

Mam takie coś:

event.target.removeEventListener("end", sayMeaining);

setTimeout(()=>{
msg = new SpeechSynthesisUtterance("yes, no, i don't no");
msg.lang = 'en-US';
window.speechSynthesis.speak(msg);
msg.addEventListener("end", speech);
}, delay*(1/3));

I to działa ale chcę to na Promises dać.
Tego jest kilka odczytów zdań, jedno po drugim, za każdym razem inne i czasem en-US a czasem pl-PL. Po odtworzeniu zdania event end musi być usunięty. Do tego to opóźnienie między wymowami.
Z tego się robi niezły bałagan bez Promises. Chociaż działa.

Jak zrobić wielostopniowe Promises? Tak, żeby jedno było za drugim?
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • Doceń
@kmiasko: Pomyślałem sobie że to co mam działa, a to co proponujesz nie działa i wcale nie jest prostsze/przejrzystsze. Więc lepiej zostanę przy tym co jest.

No chyba że ktoś zaproponuje jakieś lepsze rozwiązanie. Chodzi o zwiększenie przejrzystości.

Marzyło mi się coś w
  • Odpowiedz
@look997: nie wiem co tam dokładnie chcesz zrobić, bo we wklejonym kodzie brakuje chociażby tego, co oznacza speech...ale jeśli chcesz osiągnąć coś w stylu p1.then(p2).then(p3)... to zrób sobie funkcję:

var say = function(text) {
return new Promise((resolve, reject) => {
setTimeout(() =>
  • Odpowiedz