Javascript api在for循环中调用,并将值分配到单个变量中,以便在nodejs外部访问

Javascript api在for循环中调用,并将值分配到单个变量中,以便在nodejs外部访问,javascript,node.js,ajax,api,asynchronous,Javascript,Node.js,Ajax,Api,Asynchronous,我试图通过循环访问我的API,因为这是我的一个需求。我写的代码如下 currentWeekStartDate = (new Date(requestStartDate)); currentWeekEndDate = (new Date(requestEndDate)); let currentWeekStartDateNew = (new Date(requestStartDate)); le

我试图通过循环访问我的API,因为这是我的一个需求。我写的代码如下

 currentWeekStartDate = (new Date(requestStartDate));
                 currentWeekEndDate = (new Date(requestEndDate));
                 let currentWeekStartDateNew = (new Date(requestStartDate));
                 let currentWeekEndDateNew = (new Date(requestEndDate));
                 console.log("testing ZONE");
                 /*test zone */
                 let outerEventArray = [];
                 while (currentWeekStartDateNew.getDate() !==currentWeekEndDateNew.getDate()){
                    console.log(currentWeekStartDateNew);
                     let startTIme = new Date(currentWeekStartDateNew);
                     let endTime = new Date(currentWeekEndDateNew);
                     startTIme.setHours(startHour,startMinute,0,0);
                     endTime.setHours(endHour,endMinute,0,0)
                  while(startTIme.getHours() !== endTime.getHours()){
                      let newStartTime = new Date(startTIme);
                      newStartTime.setHours(startTIme.getHours() + 1);

                    let firstTimeArg = startTIme.toISOString().replace("Z", "0000");
                    let secondTimeArg = newStartTime.toISOString().replace("Z", "0000");
                    let returnVal = getEventArray(access_token, firstTimeArg,secondTimeArg).then(res => {
                        return res;
                    });
                    if(returnVal !== null){
                        console.log("returnVal");
                           console.log(returnVal);
                           outerEventArray.push(returnVal);
                        console.log("returnVal");
                    }
                    /*
                        function
                    */
                    startTIme = new Date(newStartTime);
                }
                currentWeekStartDateNew.setDate(currentWeekStartDateNew.getDate() + 1);
            }
            console.log("outerEventArray");
            console.log(outerEventArray);
            console.log("outerEventArray");
我的API调用函数是

getEventArray = async(access_token, startArguement,endArguement)  => {

let eventVal;
let urlVal = "https://graph.microsoft.com/v1.0/users/" + user + "/calendarview?startdatetime=" + startArguement + "&enddatetime=" + endArguement + "";
request.get({
    url: urlVal,
    headers: {
        "Authorization": "Bearer " + access_token
    }
}, function (err, response, body) {
    let bodyJSON = JSON.parse(body);
    eventVal = bodyJSON.value;
    if(eventVal == null){
        console.log("eventVal is null");
    }
    else{
        let eventArray = [];
        for (let valueVal of Object.values(eventVal)) {
            let eventStartTime = valueVal.start.dateTime;
            let eventEndTime = valueVal.end.dateTime;
            if (!((eventStartTime[eventStartTime.length - 1] === 'Z') || (eventStartTime[eventStartTime.length - 1] === 'z'))) {
                eventStartTime = eventStartTime + "Z";
            }
            if (!((eventEndTime[eventEndTime.length - 1] === 'Z') || (eventEndTime[eventEndTime.length - 1]) === 'z')) {
                eventEndTime = eventEndTime + "z"
            }
            eventArray.push({ start: new Date(eventStartTime).toLocaleString(), end: new Date(eventEndTime).toLocaleString() });
        }
        console.log(eventArray);
       return eventArray;
    }

});
 }
但是,我无法从外部获取OutRevenuerray值。我的要求是访问外部,并填充所有数据。这有可能吗