响应式语音 js 如何与 promise 一起使用?
How is responsive voice js working with promise?
我使用响应式语音(文本到语音),我在一个数组中创建了一些简单的数据,我用一个承诺循环它但是当我把解决方法放在响应式 onend
的方法中时语音它不是语音的结束,它调用下一个数据。请看我的代码。
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
我正在尝试超时并且它起作用了,但我想对此有任何选择
setTimeout(function(){ resolve(); }, 6000);
您的代码正在运行。
改变
responsiveVoice.speak(data[i].textEN, data[i].langEN, { rate: .7, onend: resolve()});
到
responsiveVoice.speak(data[i].textEN, data[i].langEN, { rate: .7, onend: resolve});
我使用响应式语音(文本到语音),我在一个数组中创建了一些简单的数据,我用一个承诺循环它但是当我把解决方法放在响应式 onend
的方法中时语音它不是语音的结束,它调用下一个数据。请看我的代码。
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
我正在尝试超时并且它起作用了,但我想对此有任何选择
setTimeout(function(){ resolve(); }, 6000);
您的代码正在运行。
改变
responsiveVoice.speak(data[i].textEN, data[i].langEN, { rate: .7, onend: resolve()});
到
responsiveVoice.speak(data[i].textEN, data[i].langEN, { rate: .7, onend: resolve});