वादे का प्रयोग करें ।
var mongoose = require('mongoose');
mongoose.connect('your MongoDB connection string');
var conn = mongoose.connection;
var promises = ['aaa', 'bbb', 'ccc'].map(function(name) {
return new Promise(function(resolve, reject) {
var collection = conn.collection(name);
collection.drop(function(err) {
if (err) { return reject(err); }
console.log('dropped ' + name);
resolve();
});
});
});
Promise.all(promises)
.then(function() { console.log('all dropped)'); })
.catch(console.error);
यह प्रत्येक संग्रह को गिराता है, प्रत्येक के बाद "गिराया गया" छपाई करता है, और फिर पूरा होने पर "सभी गिरा" प्रिंट करता है। यदि कोई त्रुटि होती है, तो इसे प्रदर्शित किया जाता है stderr
।
पिछला उत्तर (यह प्रॉमिस के लिए नोड का मूल समर्थन पूर्व-दिनांक):
क्यू वादों या ब्लूबर्ड वादों का उपयोग करें ।
क्यू के साथ :
var Q = require('q');
var mongoose = require('mongoose');
mongoose.connect('your MongoDB connection string');
var conn = mongoose.connection;
var promises = ['aaa','bbb','ccc'].map(function(name){
var collection = conn.collection(name);
return Q.ninvoke(collection, 'drop')
.then(function() { console.log('dropped ' + name); });
});
Q.all(promises)
.then(function() { console.log('all dropped'); })
.fail(console.error);
ब्लूबर्ड के साथ :
var Promise = require('bluebird');
var mongoose = Promise.promisifyAll(require('mongoose'));
mongoose.connect('your MongoDB connection string');
var conn = mongoose.connection;
var promises = ['aaa', 'bbb', 'ccc'].map(function(name) {
return conn.collection(name).dropAsync().then(function() {
console.log('dropped ' + name);
});
});
Promise.all(promises)
.then(function() { console.log('all dropped'); })
.error(console.error);