javascript - 响应式语音 js 如何与 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);
推荐阅读
- angular - 那里有在 Angular 较新版本上添加交互式 D3 js v6 图表的任何实用指南
- sql - ORDER BY 的意外结果
- redis - Redis 集群裂脑场景
- laravel - Laravel eloquent 无法输入字段链接具有某个表的外键的数据
- ios - UIBezierPath 变色自定义
- influxdb - InfluxDB Flux 当前值减去 90 天前的值
- c++ - 当在另一个线程上完成工作时,有没有办法保护智能指针在一个线程上被释放?
- c# - Microsoft Workflow Foundation 在 Toolbox 中添加内部 Nuget 包的自定义 Activity 库
- sharepoint-list - 无法使用 Shareplum 从超过 5000 条记录的共享点列表中获取或删除数据
- javascript - 更新 Svelte 后生成错误:“exports”未定义包子路径“./compiler.js”