En JavaScript, `Promise.all` es un método que devuelve una única promesa que se resuelve cuando todas las promesas en el arreglo de argumentos se han resuelto o cuando el arreglo no contiene promesas. Es rechazada con el motivo de la primera promesa que es rechazada.
Aquí un ejemplo de cómo usar `Promise.all` para manejar varias promesas a la vez:
```javascript
let promise1 = Promise.resolve(3);
let promise2 = 42;
let promise3 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, ‘foo’);
});
Promise.all([promise1, promise2, promise3]).then((values) => {
console.log(values);
});
// expected output: Array [3, 42, “foo”]
```
En este caso se pasa un array de promesas al método `Promise.all` y este devuelve una nueva promesa. Aquí, `values` es un array que contiene los valores resueltos de todas las promesas. Si una de las promesas es rechazada, entonces la promesa devuelta por `Promise.all` inmediatamente fallará con esa razón, ignorando todas las demás promesas si aún no se han resuelto.
En resumen, `Promise.all` es una manera útil de manejar múltiples promesas a la vez. Sin embargo, se debe tener en cuenta que si una promesa falla, todas las demás también fallarán.