[英]How to make this recursive code execute synchronously in node.js
我有一個遞歸函數,可以在javascript中同步執行,並得到我想要的結果。 但是,當我在node.js中執行相同的代碼時,即使在函數完全執行之前,函數的結果也已交付。 有人可以幫助我在node.js中同步執行代碼嗎?
我也嘗試過回調。 但是我可以看到,即使在執行內部遞歸函數之前,也將返回決賽。
有人可以幫助我讓此代碼在Node JS中同步工作嗎?
var finals = [];
function algo(parentApi)
{
var i, j, k = 0;
var parents = [];
for (j = 0; j < parentApi.length; j++)
{
for (i = 0; i < childProjectApiList.length; i++)
{
if (parentApi[j].api_tag == childProjectApiList[i].dependent_api)
{
parents[k++] = childProjectApiList[i];
}
}
if (parents.length > 0)
{
async.map(parents, projectComponent.getApiResult,
function(err, result)
{
finals = finals.concat(result);
algo(parents);
});
}
}
if (j == parentApi.length)
{
return finals;
}
}
我期望函數在整個遞歸過程完成后返回final,但它會返回空數組。
嘗試這個,
var finals = [];
函數algo(parentApi){var i,j,k = 0,父母= [];
for (j = 0; j < parentApi.length; j++) {
for (i = 0; i < childProjectApiList.length; i++) {
if (parentApi[j].api_tag == childProjectApiList[i].dependent_api){
parents[k++] = childProjectApiList[i];
}
}
if (parents.length > 0){
async.map(parents, projectComponent.getApiResult, function(err, result) {
finals = finals.concat(result);
algo(parents);
});
}else if (j == parentApi.length) {
return finals;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.