欢迎您访问我爱IT技术网,今天小编为你分享的javascript教程:【javascript Deferred和递归次数限制实例】,下面是详细的讲解!
javascript Deferred和递归次数限制实例
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 Deferred和递归次数限制实例的用户互动如下:
相关问题:javascript递归问题
答: chrome已提示Maximum call stack size exceeded。 >>详细
相关问题:javascript递归
答:var Handler = function(Q,R,P){var A,C = 0,T,F;P = P || 0if (P < R.length) A = R[P]else R.push(A = [])if (Q instanceof Array){for (F = 0;F < Q.length;++F) A.push([Q[F],1])C = Q.length}else{for (F in Q){T = Handler(Q[F],R,P + 1)C... >>详细
相关问题:请大神解答一下javascript递归的原理
答:你将代码整个在脑子里走一遍就明白了 首先从外部调用f(5)进入方法 这时方法内的参数x为5 那么if(x == 1)这个条件不成功继续执行else else里再次调用了本方法f(x - 1),只是参数变成了4 这样一直排执行到x=1时弹出alert("1"); 注意,这时方法并没... >>详细
- 【Array】js中更短的 Array 类型转换-类型转换
- 【ExtJs】ExtJs 表单提交登陆实现代码-表单提交-
- 【Ajax】jQuery 学习第六课 实现一个Ajax的TreeVi
- 【extjs】extjs每个组件要设置唯一的ID否则会出错
- 【focus】JavaScript使用focus()设置焦点失败的解
- 【bootstrap3】基于bootstrap3和jquery的分页插件
- 【hover】jQuery控制图片的hover效果(smartRollo
- 【ajax更新数据库】ajax异步刷新实现更新数据库-
- 【div】div浮层 滚动条移动 位置保持不变的4种方
- 【Cookie】Cookie 小记
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
