Node Js:带有变量更新的异步while循环

时间:2016-03-18 15:28:27

标签: node.js asynchronous while-loop callback

我正面临一个我无法在Node Js代码中处理的案例。

以下是重点:

我需要调用此函数

addClosestTask = function(currentTask,taskArray,travel_mode,time_p,callback_p){
    async.mapLimit(taskArray,3,function(task,callback_async){
        map.getTravelTime(currentTask["destination"]["location"][1],currentTask["destination"]["location"][0],task["destination"]["location"][1],task["destination"]["location"][0],travel_mode,true,callback_async);
    },function(error,result){
        if(error){
            callback(true,null,null);
        }
        else{
            var min_time = _.min(result);
            var min_index = _.findIndex(result,function(item){
                return item == min_time ;
            });
            if(time_p + 240 + min_time < 2400){
                callback_p(null,taskArray[min_index],time_p + 240 + min_time);
            }
            else{
                callback_p(true,null,null);
            }
        }
    });
};

有一个启动currentTask和taskArray。 travel_mode总是不变的。

我需要调用此函数,直到将错误传递给回调第一个参数。 在每次调用之后,我需要使用回调第二个参数和time_p返回的任务更新currentTask,并使用回调第三个参数返回时间。我还需要通过一个取决于返回任务的简单操作来更新taskArray。当所有内容都更新后,我进行下一次调用,直到调用错误(由于时间条件,最终会出现这种情况。我还有一个数组,我需要每次都添加返回的任务。

我显然试图查看异步模块函数,但没有找到可以处理我的问题的函数。

你知道我怎么能解决这个问题吗?

非常感谢,我无法找到摆脱这个问题的方法。

0 个答案:

没有答案