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 相关文章推荐
Div Select挡住的解决办法
Aug 07 Javascript
jQuery ajax 路由和过滤器使用说明
Aug 02 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
Dec 08 Javascript
jquery eval解析JSON中的注意点介绍
Aug 23 Javascript
JavaScript字符串对象slice方法入门实例(用于字符串截取)
Oct 16 Javascript
微信小程序 引用其他js文件实现代码
Feb 22 Javascript
Javascript 链式作用域详细介绍
Feb 23 Javascript
electron + vue项目实现打印小票功能及实现代码
Nov 25 Javascript
微信小程序城市选择及搜索功能的方法
Mar 22 Javascript
ajaxfileupload.js实现上传文件功能
Apr 19 Javascript
Layui数据表格跳转到指定页的实现方法
Sep 05 Javascript
如何通过简单的代码描述Angular父组件、子组件传值
Apr 07 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
ajax php 实现写入数据库
2009/09/02 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
可输入的下拉框
2006/06/19 Javascript
编辑浪子版表单验证类
2007/05/12 Javascript
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
javascript各种复制代码收集
2008/09/20 Javascript
由document.body和document.documentElement想到的
2009/04/13 Javascript
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
使用NestJS开发Node.js应用的方法
2018/12/03 Javascript
node.js文件操作系统实例详解
2019/11/05 Javascript
5个你不知道的JavaScript字符串处理库(小结)
2020/06/01 Javascript
通过实例解析vuejs如何实现调试代码
2020/07/16 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
2011/03/13 Python
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
python中enumerate函数用法实例分析
2015/05/20 Python
python中根据字符串调用函数的实现方法
2016/06/12 Python
Django1.9 加载通过ImageField上传的图片方法
2018/05/25 Python
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
基于python3抓取pinpoint应用信息入库
2020/01/08 Python
canvas像素画板的实现代码
2018/11/21 HTML / CSS
美国高街时尚品牌:OASAP
2016/07/24 全球购物
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
美国高端牛仔品牌:Silver Jeans
2019/12/12 全球购物
销售人员中英文自荐信
2013/09/22 职场文书
生产文员岗位职责
2014/04/05 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
运动会广播稿200字(10篇)
2014/10/12 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL