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 相关文章推荐
Bootstrap每天必学之缩略图与警示窗
Nov 29 Javascript
javascript日期格式化方法小结
Dec 17 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
Apr 04 Javascript
js ajaxfileupload.js上传报错的解决方法
May 05 Javascript
jQuery中$.each()函数的用法引申实例
May 12 Javascript
如何理解Vue的render函数的具体用法
Aug 30 Javascript
微信小程序文章详情页面实现代码
Sep 10 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
Dec 03 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
Nov 07 Javascript
jQuery实现点击滚动到指定元素上的方法分析
Mar 19 jQuery
解决vue-router 嵌套路由没反应的问题
Sep 22 Javascript
antd 表格列宽自适应方法以及错误处理操作
Oct 27 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 mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
php异步多线程swoole用法实例
2014/11/14 PHP
PHP+Ajax异步带进度条上传文件实例
2016/11/01 PHP
javascript 动态添加事件代码
2008/11/30 Javascript
jquery 分页控件实现代码
2009/11/30 Javascript
javascript 闭包
2011/09/15 Javascript
Javascript获取当前时间函数和时间操作小结
2014/10/01 Javascript
jquery实现简单文字提示效果
2015/12/02 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
原生js实现电商侧边导航效果
2017/01/19 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
2019/05/23 Javascript
[01:59]深扒TI7聊天轮盘语音出处 1
2017/05/11 DOTA
python实现巡检系统(solaris)示例
2014/04/02 Python
Python采集腾讯新闻实例
2014/07/10 Python
Python DataFrame 设置输出不显示index(索引)值的方法
2018/06/07 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
Python实现简单的用户交互方法详解
2018/09/25 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
2018/12/15 Python
python实现kmp算法的实例代码
2019/04/03 Python
Django REST framework 分页的实现代码
2019/06/19 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
Hotels.com泰国:酒店预订网站
2019/11/20 全球购物
公证书样本
2014/04/10 职场文书
小学英语课后反思
2014/04/26 职场文书
党员个人剖析材料
2014/09/30 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
拖欠货款起诉状
2015/05/20 职场文书
电工实训心得体会
2016/01/14 职场文书
初三语文教学反思
2016/03/03 职场文书
党组织结对共建协议书
2016/03/23 职场文书
协议书格式模板
2016/03/24 职场文书
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python
MySQL创建管理HASH分区
2022/04/13 MySQL