是否可以限制节点中的异步任务?

Mic*_*eds 3 javascript asynchronous node.js

我有以下异步代码部分:

async.forEach(list, function(file, loopCallback) {
    console.log("file");
    loopCallback();
}, {
    console.log("all done!");
});
Run Code Online (Sandbox Code Playgroud)

它打印了我列表中所有文件的名称,太好了。现在,我想限制并行处理的文件数量。如果我一次只想处理一个文件怎么办?

我听说过async.ParallelLimit, 和async.Queue,并且想知道如何修改此代码以适合其中之一,特别是parallelLimit.

有任何想法吗?

Ion*_*nut 5

我认为您需要的是eachLimit,而不是parallelLimit。下面是一个例子:

async.each(
    list,
    1, // limit
    function(file, callback) {
        console.log('Processing file ' + file);
        callback();
    },
    function(err){
        if( err ) {
          console.log('Failed to process');
        } else {
          console.log('All files have been processed successfully');
        }
    }
);
Run Code Online (Sandbox Code Playgroud)

  • @MickeyThreeSheds 当有人提供了一个好的答案时,你应该投赞成票:) 在这一点上,我赞成你。 (2认同)