javascript 지연 및 재귀 제한 example_javascript 기술
Deferred와 Recursion 제한에 대해 알고 계시나요? 아래에 좋은 예가 있으니 한 번 살펴보세요
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(); }

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









C++ 함수의 재귀 깊이에는 제한이 있습니다. 이 제한을 초과하면 스택 오버플로 오류가 발생합니다. 제한 값은 시스템과 컴파일러에 따라 다르지만 일반적으로 1,000에서 10,000 사이입니다. 솔루션에는 다음이 포함됩니다. 1. 테일 재귀 최적화, 2. 테일 호출, 3. 반복 구현.

예, C++ Lambda 표현식은 std::function을 사용하여 재귀를 지원할 수 있습니다. std::function을 사용하여 Lambda 표현식에 대한 참조를 캡처합니다. 캡처된 참조를 사용하면 Lambda 표현식이 자신을 재귀적으로 호출할 수 있습니다.

두 개의 문자열 str_1과 str_2가 주어졌습니다. 목표는 재귀 프로시저를 사용하여 문자열 str1에서 하위 문자열 str2의 발생 횟수를 계산하는 것입니다. 재귀 함수는 정의 내에서 자신을 호출하는 함수입니다. str1이 "Iknowthatyouknowthatiknow"이고 str2가 "know"인 경우 발생 횟수는 -3입니다. 예를 들어 str1="TPisTPareTPamTP", str2="TP"를 입력하면 Countofoccurrencesofasubstringrecursi가 출력됩니다.

재귀 알고리즘은 함수 자체 호출을 통해 구조화된 문제를 해결하지만 간단하고 이해하기 쉽다는 장점이 있지만 효율성이 떨어지고 스택 오버플로가 발생할 수 있다는 단점이 있습니다. 스택 데이터 구조의 장점은 더 효율적이고 스택 오버플로를 방지한다는 것입니다. 단점은 코드가 더 복잡할 수 있다는 것입니다. 재귀적 또는 비재귀적 선택은 문제와 구현의 특정 제약 조건에 따라 달라집니다.

Python은 배우고 사용하기 쉬운 프로그래밍 언어입니다. 그러나 Python을 사용하여 재귀 함수를 작성할 때 재귀 깊이가 너무 큰 오류가 발생할 수 있습니다. 이때 이 문제를 해결해야 합니다. 이 기사에서는 Python의 최대 재귀 깊이 오류를 해결하는 방법을 보여줍니다. 1. 재귀 깊이를 이해합니다. 재귀 깊이는 중첩된 재귀 함수의 레이어 수를 나타냅니다. 기본적으로 Python에서 재귀 깊이 제한은 1000입니다. 재귀 수준 수가 이 제한을 초과하면 시스템에서 오류를 보고합니다. 이 오류는 종종 "최대 재귀 깊이 오류"라고 불립니다.

정수 배열 Arr[]을 입력으로 사용합니다. 목표는 재귀적 방법을 사용하여 배열에서 가장 큰 요소와 가장 작은 요소를 찾는 것입니다. 재귀를 사용하고 있으므로 길이 = 1에 도달할 때까지 전체 배열을 반복한 다음 기본 사례를 구성하는 A[0]을 반환합니다. 그렇지 않은 경우 현재 요소는 현재 최소값 또는 최대값과 비교되고 해당 값은 후속 요소에 대해 반복적으로 업데이트됩니다. 이에 대한 다양한 입력 및 출력 시나리오를 살펴보겠습니다. −Input −Arr={12,67,99,76,32} Output −배열의 최대값: 99 설명 &mi

재귀 함수는 문자열 처리 문제를 해결하기 위해 자신을 반복적으로 호출하는 기술입니다. 무한 재귀를 방지하기 위해서는 종료 조건이 필요합니다. 재귀는 문자열 반전 및 회문 검사와 같은 작업에 널리 사용됩니다.

Vue 양식 처리를 사용하여 양식의 재귀 중첩을 구현하는 방법 소개: 프런트 엔드 데이터 처리 및 양식 처리의 복잡성이 계속 증가함에 따라 복잡한 양식을 처리할 수 있는 유연한 방법이 필요합니다. 널리 사용되는 JavaScript 프레임워크인 Vue는 양식의 재귀 중첩을 처리할 수 있는 많은 강력한 도구와 기능을 제공합니다. 이 글에서는 Vue를 사용하여 이러한 복잡한 양식을 처리하는 방법과 코드 예제를 첨부하는 방법을 소개합니다. 1. 양식의 재귀 중첩 일부 시나리오에서는 재귀 중첩을 처리해야 할 수도 있습니다.
