¿La forma más sencilla de esperar algunas tareas asíncronas completas, en Javascript?

Quiero eliminar algunas colecciones mongodb, pero eso es una tarea asíncrona. El código será:

<code>var mongoose = require('mongoose');

mongoose.connect('mongo://localhost/xxx');

var conn = mongoose.connection;

['aaa','bbb','ccc'].forEach(function(name){
    conn.collection(name).drop(function(err) {
        console.log('dropped');
    });
});
console.log('all dropped');
</code>

La consola muestra:

<code>all dropped
dropped
dropped
dropped
</code>

¿Cuál es la forma más sencilla de asegurarseall dropped ¿Se imprimirá después de que se hayan retirado todas las colecciones? Cualquier tercero puede ser utilizado para simplificar el código.

Respuestas a la pregunta(8)

Su respuesta a la pregunta