Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

468
Views
wait for return function value before callback triggered

I am trying to create a module that fetches all the info one by one and stores it in an array at the end it returns the array, instead of the loop I am using recursion. The problem here is that my main function is not waiting for the return value due to which no value is passed in the callback. I can re-write this async await or promise but if the same type of problem is present in the entire project I don't want to re-write the entire thing. This can be handled by callbacks? or some other way I can resolve it.

    const GetRequest = require("./getRequest.js");
module.exports = function GetProcessList(environment, token, processCompleteList, callback) {
    var allProcessDraft = [];
    var loopMaxRun = processCompleteList.data.length -1;
    var a = RecursiveGet(environment, token, processCompleteList, allProcessDraft, loopMaxRun);
    callback(a); //Not waiting for the value
}

//recursion function to get all the data one by one
function RecursiveGet(environment, token, processCompleteList, allProcessDraft, index) {
    var URL = "https://" + environment + "...../rest/process/versionPage?calledFrom=master&pageNo=0&processMasterId=" + processCompleteList.data[index].id + "&recordsPerPage=10&sortType=DESC";
    if (index != 0) {
        GetRequest(URL, token, function (processDraft) {
            allProcessDraft.push(processDraft);
            return RecursiveGet(environment, token, processCompleteList,allProcessDraft, index -1);
        });
    } else { 
        return allProcessDraft;
    }
 }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Try the below code.

async function RecursiveGet(environment, token, processCompleteList, allProcessDraft, index) {
    var URL = "https://" + environment + "...../rest/process/versionPage?calledFrom=master&pageNo=0&processMasterId=" + processCompleteList.data[index].id + "&recordsPerPage=10&sortType=DESC";
    if (index != 0) {
       const processedDraft = await GetRequest(URL, token);
       allProcessDraft.push(processDraft);
       return RecursiveGet(environment, token, processCompleteList,allProcessDraft, index -1);
    } else { 
        return allProcessDraft;
    }
 }

note: make sure GetRequest is async

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!