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 相关文章推荐
再谈IE中Flash控件的自动激活 ObjectWrap
Mar 09 Javascript
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
Nov 12 Javascript
深入分析下javascript中的[]()+!
Jul 07 Javascript
纯js实现手风琴效果
Apr 17 Javascript
js判断请求的url是否可访问,支持跨域判断的实现方法
Sep 17 Javascript
NODE.JS跨域问题的完美解决方案
Oct 20 Javascript
教你用十行node.js代码读取docx的文本
Mar 08 Javascript
vue中的scope使用详解
Oct 29 Javascript
jfinal与bootstrap的登出实战详解
Nov 27 Javascript
js将键值对字符串转为json字符串的方法
Mar 30 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
Apr 03 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
Sep 15 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
当年上海收录机产品生产,进口和价格情况
2021/03/04 无线电
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
简单谈谈favicon
2015/06/10 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
PHP数据库连接mysql与mysqli对比分析
2016/01/04 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
JS实现随机数生成算法示例代码
2013/08/08 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
jquery+css实现的红色线条横向二级菜单效果
2015/08/22 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
[01:37]TI4西雅图DOTA2前线报道 VG拿下首胜教练357给出获胜秘诀
2014/07/10 DOTA
[02:49:21]2019完美盛典全程录像
2019/12/08 DOTA
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
利用Python循环(包括while&amp;for)各种打印九九乘法表的实例
2017/11/06 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
python实现PID算法及测试的例子
2019/08/08 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
pytorch ImageFolder的覆写实例
2020/02/20 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
英国著名国际平价时尚男装品牌:Topman
2016/08/27 全球购物
香港现代设计家具品牌:Ziinlife Furniture
2018/11/13 全球购物
张丽莉事迹观后感
2015/06/16 职场文书
社团招新宣传语
2015/07/13 职场文书
python小程序之飘落的银杏
2021/04/17 Python
Java设计模式之享元模式示例详解
2022/03/03 Java/Android
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL