簡體   English   中英

在觸發回調之前等待返回 function 值

[英]wait for return function value before callback triggered

我正在嘗試創建一個模塊,一個一個地獲取所有信息並將其存儲在一個數組中,最后它返回數組,而不是我使用遞歸的循環。 這里的問題是我的主 function 沒有等待返回值,因為回調中沒有傳遞任何值。 我可以重寫此 async await 或 promise,但如果整個項目中存在相同類型的問題,我不想重寫整個項目。 這可以通過回調處理嗎? 或者我可以通過其他方式解決它。

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

試試下面的代碼。

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

注意:確保 GetRequest 是異步的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM