这是我的递归函数:
但是使用setTimeout,它会永远运行...为什么?setTimeout内部发生了什么特殊的事情?它不再是递归调用了吗?
感激任何提示。谢谢。
function importTEI(index,data,header){
if (index == data.length){return}
var tei = new dhis2API.trackedEntityInstance();
tei.excelImportPopulator(header,data[index]);
tei.POST(requestCallback,requestCallback,index);
function requestCallback(response){
notificationCallback(response);
setTimeout(function(){
importTEI(response.importStat.index+1,importData,header);
},0);
}
}
importTEI函数被调用时使用了setTimeout。如果没有使用setTimeout,那么在进行了几次请求后就会出现以下错误 -
Uncaught RangeError: Maximum call stack size exceeded
但是使用setTimeout,它会永远运行...为什么?setTimeout内部发生了什么特殊的事情?它不再是递归调用了吗?
感激任何提示。谢谢。