2015-12-12 4 views
0

я теперь использовать этот код (часть моего кода):Случайный порядок в асинхронном node.js

async.forEachOfSeries(dates, function(mydate, m, eachDone) { 
     eachDateParse(Name,Place,Strategy, eachDone) 
}, function(err) { 
    if (err) throw err; 
    console.log("All Done!"); 
    callback(); } 
); 

async.forEachOfSeries делает петлю над dates в порядке, но есть ли функция асинхронная, которая может рандомизировать порядок из петля над dates?

С наилучшими пожеланиями

+0

Возможно, вам придется случайно перетасовать «даты» перед тем, как вы перейдете к нему, сделав это обманом -> [Как рандомизировать (перетасовать) массив JavaScript] (http://stackoverflow.com/questions/ 2450954/how-to-randomize-shuffle-a-javascript-array) – adeneo

+0

@adeneo Да, но не хотите использовать это решение, когда это возможно. Есть ли какая-либо функция асинхронной библиотеки для этого? – user1665355

+1

Я не думаю, что есть, вся точка async.js должна иметь возможность запускать асинхронные методы последовательно, параллельно, водопады и т. Д. И сохранять порядок, а не рандомизировать его, тогда вы также можете не использовать async.js вообще. – adeneo

ответ

2

Это пример для моего комментария по запросу

var dates = ['20110101', '20120101', '20130101', '20140101', '20150101']; 

async.sortBy(dates, function(item, callback) { 
    callback(null, Math.random()); 
}, function(err, result) { 
    console.log('Sorting is finished.'); 
    async.each(result, function(date, callback) { 
     console.log('Parsing date: ' + date); 
     callback(); 
    }, function(error, res) { 
     console.log('All dates are parsed now.'); 
    }); 
}); 

хотя я не совсем уверен, что если вложенности async функции является хорошей идеей, кажется, работает.

Смежные вопросы