Я пытаюсь использовать библиотеку async, но я не знаю, как переписать обратный вызов ад в реальном мире. Меня особенно интересует метод серии в сочетании с коммуникацией с некоторым существующим драйвером. Может ли кто-нибудь переписать следующий исходный код, используя метод async.js series? Это взято из this link.Пример реального мира метода асинхронной библиотеки caolan
Я не привязан к MongoDb. Если кто-нибудь переписал какой-то другой пример аддонов обратного вызова для асинхронных серий, было бы неплохо показать.
Меня также будет интересовать каким-либо альтернативой решением, кроме асинхронной библиотеки. Но опять же - переписывая этот пример в этом решении (или показывая другой полный пример), чтобы мы могли видеть реальный код и сравнивать.
var MongoClient = require('../lib/mongodb').MongoClient
, format = require('util').format;
var host = process.env['MONGO_NODE_DRIVER_HOST'] != null ? process.env['MONGO_NODE_DRIVER_HOST'] : 'localhost';
var port = process.env['MONGO_NODE_DRIVER_PORT'] != null ? process.env['MONGO_NODE_DRIVER_PORT'] : 27017;
console.log("Connecting to " + host + ":" + port);
MongoClient.connect(format("mongodb://%s:%s/node-mongo-examples?w=1", host, port), function(err, db) {
db.dropDatabase(function(err, result) {
var collection = db.collection('test');
// Erase all records from the collection, if any
collection.remove({}, function(err, result) {
// Insert 3 records
for(var i = 0; i < 3; i++) {
collection.insert({'a':i}, {w:0});
}
collection.count(function(err, count) {
console.log("There are " + count + " records in the test collection. Here they are:");
collection.find().each(function(err, item) {
if(item != null) {
console.dir(item);
console.log("created at " + new Date(item._id.generationTime) + "\n")
}
// Null signifies end of iterator
if(item == null) {
// Destory the collection
collection.drop(function(err, collection) {
db.close();
});
}
});
});
});
});
});
Также посмотрите на [ 'step'] (https://github.com/creationix/step) и [' streamline.js'] (https: // GitHub. com/Sage/streamlinejs) для некоторых идей. – robertklep