¿Resolver promesas una tras otra (es decir, en secuencia)?

Considere el siguiente código que lee una matriz de archivos de manera serial / secuencial. readFilesdevuelve una promesa, que se resuelve solo una vez que todos los archivos se han leído en secuencia. var readFile = function(file) { ... // Returns a promise. }; var readFiles = function(files)...