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 相关文章推荐
A标签触发onclick事件而不跳转的多种解决方法
Jun 27 Javascript
jquery图片不完全按比例自动缩小的简单代码
Jul 29 Javascript
js控制不同的时间段显示不同的css样式的实例代码
Nov 04 Javascript
js实现商城星星评分的效果
Dec 29 Javascript
Javascript复制实例详解
Jan 28 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
Aug 19 Javascript
d3.js实现简单的网络拓扑图实例代码
Nov 06 Javascript
jQuery事件绑定方法学习总结(推荐)
Nov 21 Javascript
jQuery实现ToolTip元素定位显示功能示例
Nov 23 Javascript
浅谈Node异步编程的机制
Oct 18 Javascript
JavaScript动态生成表格的示例
Nov 02 Javascript
JavaScript实现显示和隐藏图片
Apr 29 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
利用递归把多维数组转为一维数组的函数
2006/10/09 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
jQuery拖拽 &amp; 弹出层 介绍与示例
2013/12/27 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
jquery获取文档高度和窗口高度汇总
2016/01/25 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
2017/08/18 jQuery
浅析JavaScript中的特殊数据类型
2017/12/15 Javascript
NW.js 简介与使用方法
2018/02/01 Javascript
详解webpack运行Babel教程
2018/06/13 Javascript
JavaScript实现仿Clock ISO时钟
2018/06/29 Javascript
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
2019/07/04 Javascript
python 简易计算器程序,代码就几行
2009/08/29 Python
Python语言的12个基础知识点小结
2014/07/10 Python
Python中bisect的用法
2014/09/23 Python
Python内建数据结构详解
2016/02/03 Python
Python控制多进程与多线程并发数总结
2016/10/26 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
关于django 数据库迁移(migrate)应该知道的一些事
2018/05/27 Python
python实现windows下文件备份脚本
2018/05/27 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
结构工程个人自荐信范文
2013/11/30 职场文书
三年级音乐教学反思
2014/01/28 职场文书
中国梦我的梦演讲稿
2014/04/23 职场文书
运动会演讲稿100字
2014/08/25 职场文书
2015年中秋寄语
2015/07/31 职场文书
寒假生活随笔
2015/08/15 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers