Как отзывчивый голос работает с обещанием? - PullRequest
0 голосов
/ 25 июня 2019

Я использую Responsive voice (text to speech), и я создал несколько простых данных в массиве, и я зациклился на нем с обещанием, но когда я помещаю разрешение в методе onend Responsive voice, это неконец голоса, и он вызывает следующие данные.Пожалуйста, смотрите мой код.

var data = [
 {'textTH': "สวัสดี ค่ะ", 'lang': "Thai Female", 'textEN': "Hello", 'langEN': "US English Female"},
 {'textTH': "สวัสดี ค่ะ", 'lang': "Thai Female", 'textEN': "Hello 2", 'langEN': "US English Female"}
];

var j = data.length;

function step2(i){
    return new Promise(function(resolve, reject){
    if (typeof data[i] == 'undefined'){
            reject("out of rang");
    }
    else{               
      var runEnglistSpeech = function () {
        responsiveVoice.speak(data[i].textEN, data[i].langEN, { rate: .7, onend: resolve()});
        console.log("done >>>> " + i);        
      };
        responsiveVoice.speak(data[i].textTH, data[i].lang, { rate: .9, onend: runEnglistSpeech });      
    }
  })
}

(async () => {
    for (let i = 0; i < j; i++) {
        await step2(i);
       }
})();

Отзывчивый cdn => https://code.responsivevoice.org/responsivevoice.js

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

Ваш код работает. + Изменить responsiveVoice.speak(data[i].textEN, data[i].langEN, { rate: .7, onend: resolve()}); в responsiveVoice.speak(data[i].textEN, data[i].langEN, { rate: .7, onend: resolve});

0 голосов
/ 25 июня 2019

Я пытаюсь сделать тайм-аут, и это работает, но я хочу иметь любой выбор для этого

setTimeout(function(){ resolve(); }, 6000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...