你知道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(); }
我在程序的某个部分遇到了问题,我将一个充当lambda函数的对象传递给另一个函数(我需要捕获一个常量this指针,这样我就不能使用实际的lambda)。这导致调用lambda的copy构造函数,该构造函数再次调用copy构造函数,最终堆栈溢出。我知道发生了什么,但我不知道复制构造函数为什么调用自己,也不知道如何解决这个问题。我复制了下面的问题。 编译器:MSVC 2010
我明白了在递归中,每个递归调用是如何堆栈在堆栈上的;如果超过堆栈限制,则会出现堆栈溢出。那么为什么Python的返回一个数字;递归调用的最大深度? 这不是取决于我在递归函数中做了什么吗?还是以某种方式将变量保存在堆栈以外的其他地方?它是如何工作的?
本文向大家介绍PHP实现递归无限级分类,包括了PHP实现递归无限级分类的使用技巧和注意事项,需要的朋友参考一下 在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性。那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类。 递归,简单的说就是一段程序代码的重复调用,当把代码写到一个自定义函数中,将参数等变量保存,函数中重复调用函数,直到达
我来自Grails背景,最近在Micronaut使用GORM启动了一个项目。 我有以下代码: 应用程序编译和启动没有问题,但当我尝试访问url http:localhost:8080/author时,我收到以下错误: 10:25:29.431[nioEventLoopGroup-1-2]错误i.m.h.s.netty。RoutingInBoundHandler-发生意外错误:将对象[[micron
本文向大家介绍Java无限级树(递归)超实用案例,包括了Java无限级树(递归)超实用案例的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上就是小编为大家带来的Java无限级树(递归)超实用案例全部内容了,希望大家多多支持呐喊教程~
我正在用Java构建一个数独求解器,我正在使用回溯算法。有一个堆栈溢出错误,我怀疑在我的代码中有无限递归。我知道我提供的信息很少,但我太难了,不知道该怎么做。 网格是一个9乘9的数组,表示每个数独平方,它保存一个名为“value”的自定义类型,该类型简单地包含一个整数和一个布尔值,“IsOriginal”指示该值是给定的还是可更改的。 “moveon”是一个全局变量,它的值在“checkall”中