| 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 (); } |