javascript Deferred和递归次数限制实例


Posted in Javascript onOctober 21, 2014

你知道Deferred和递归次数限制吗?下面有个不错的实例,大家可以看看

function runAsyncTTS(text,speecher,audiopath) { 
var def = jQuery.Deferred(); 
var args = {"SynthText": text, "VoiceSpeecher": speecher, "WordSpeed": "3", "UseCSSML": "0", "AudioPath": audiopath}; 

tts.asyncTTS(JSON.stringify(args),function(err,result) { 
def.resolve(result); 
}); 

return def.promise(); 
}
function textToSpeechBat(metaJson, speecher, audioPath) { 
var def = $.Deferred(); 
var result = {originalWords:"", resultJsonArr:[]}; 
var jsons=""; 
for(var index=0;index < metaJson.words.length;index++) { 
var audioName = metaJson.words[index]['audio']; 
audioName = audioName.replace('.mp3',''); 
var audioFile = audioPath +"/" + audioName + '.wav'; 
var args = '{"SynthText": "'+metaJson.words[index]['word']+'", "VoiceSpeecher": "'+speecher+'", "WordSpeed": "3", "UseCSSML": "0", "AudioPath": "'+audioFile+'"}'; 
jsons += args + "|"; 
} 
jsons = jsons.substr(0,jsons.length-1); 
tts.asyncTTSBat(jsons,function(err,ret) { 
result['resultJsonArr'] = ret.split('|'); 
def.resolve(result); 
}); 
return def.promise(); 
}
function textToSpeechWithTryTimes(metaJson, speecher, audioPath,times) { 
var def = $.Deferred(); 
var ttsRet = null; 
var ttsCallBack = function(index) { 
if(index < times) { 
textToSpeechBat(metaJson,speecher,audioPath).done(function (ret) { 
console.log("textToSpeechWithTryTimes:"+JSON.stringify(ret)); 
ttsRet = ret; 
var resultJsonArr = ret.resultJsonArr; 
var audioFlag = true; 
for(var i=0;i<resultJsonArr.length;i++) { 
if(resultJsonArr[i] == "") { 
audioFlag = false; 
break; 
} 
var retObj = JSON.parse(resultJsonArr[i]); 
console.log(retObj['audioFlag']); 
if(retObj['audioFlag'] == 'false' || retObj['result']=="") { 
audioFlag = false; 
break; 
} 
} 
console.log(audioFlag); 
if(audioFlag == false) { 
console.log("textToSpeechWithTryTimes Fail, try again!"); 
ttsCallBack(++index); 
}else { 
console.log("textToSpeechWithTryTimes succeed,return"); 
def.resolve(ret); 
} 
}); 
} 

if(index == times) { 
console.log("textToSpeechWithTryTimes timesover,return"); 
def.resolve(ttsRet); 
} 
}; 

ttsCallBack(0); 
return def.promise(); 
}
Javascript 相关文章推荐
prototype 源码中文说明之 prototype.js
Sep 22 Javascript
javascript arguments 传递给函数的隐含参数
Aug 21 Javascript
javascript实现图片循环渐显播放的方法
Feb 24 Javascript
给angular加上动画效遇到的问题总结
Feb 17 Javascript
AngularJS基础 ng-srcset 指令简单示例
Aug 03 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
Aug 24 Javascript
JavaScript中setTimeout的那些事儿
Nov 14 Javascript
Vue自定义属性实例分析
Feb 23 Javascript
解决vue-cli@3.xx安装不成功的问题及搭建ts-vue项目
Feb 09 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
Jul 13 Javascript
uniapp微信小程序:key失效的解决方法
Jan 20 Javascript
QT与javascript交互数据的实现
May 26 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
Oct 21 #Javascript
jquery中post方法用法实例
Oct 21 #Javascript
js调试工具Console命令详解
Oct 21 #Javascript
JS中FRAME的操作问题实例分析
Oct 21 #Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
Oct 20 #Javascript
Javascript+CSS实现影像卷帘效果思路及代码
Oct 20 #Javascript
利用jquery操作Radio方法小结
Oct 20 #Javascript
You might like
配置PHP使之能同时支持GIF和JPEG
2006/10/09 PHP
php cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
php与flash as3 socket通信传送文件实现代码
2014/08/16 PHP
Yii框架批量插入数据扩展类的简单实现方法
2017/05/23 PHP
JavaScript弹簧振子超简洁版 完全符合能量守恒,胡克定理
2009/10/25 Javascript
新老版本juqery获取radio对象的方法
2010/03/01 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
JS实现窗口加载时模拟鼠标移动的方法
2015/06/03 Javascript
jQuery简单实现两级下拉菜单效果代码
2015/09/15 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
基于Vue2-Calendar改进的日历组件(含中文使用说明)
2019/04/14 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
2019/08/29 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
基于python list对象中嵌套元组使用sort时的排序方法
2018/04/18 Python
Python全排列操作实例分析
2018/07/24 Python
python实现栅栏加解密 支持密钥加密
2019/03/20 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
2019/04/18 Python
python进程和线程用法知识点总结
2019/05/28 Python
Python 异常处理Ⅳ过程图解
2019/10/18 Python
Python 过滤错误log并导出的实例
2019/12/26 Python
浅谈Python 钉钉报警必备知识系统讲解
2020/08/17 Python
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
青年文明号创建口号大全
2015/12/25 职场文书
导游词之山东孔庙
2019/11/04 职场文书
pytorch中的model.eval()和BN层的使用
2021/05/22 Python
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL