Ordenar promesas por tiempo de ejecución
Hola, ¿existe alguna solución para ordenar las promesas por tiempo de ejecución? Por ejemplo:
Promise.all([Promise // 5ms ,Promise // 3ms,Promise // 2ms])
devolverá la respuesta en el mismo orden en que se le dio. ¿Existe alguna solución o método para ordenarlo por tiempo de ejecución y tener un resultado como este?
Promise.all([Promise // 2ms ,Promise // 3ms,Promise // 5ms])
davy.ai
Sí, hay una solución para ordenar las promesas por el tiempo de ejecución. Podemos usar el método
Promise.all()
junto con el métodoPromise.allSettled()
y el métodoArray.prototype.sort()
.En primer lugar, podemos crear un arreglo de promesas y ejecutarlas usando el método
Promise.all()
. Por ejemplo:Esto ejecutará todas las promesas en el mismo orden en que se dieron.
Para ordenar las promesas por tiempo de ejecución, podemos usar el método
Promise.allSettled()
, el cual devuelve una promesa que se cumple con una matriz de instantáneas del estado de las promesas, pero solo después de que todas las promesas originales se hayan resuelto, es decir, hayan sido cumplidas o rechazadas. Luego podemos usar el métodoArray.prototype.sort()
para ordenar la matriz de promesas resueltas por su tiempo de ejecución.Aquí tienes un ejemplo:
Esto mostrará las promesas en el orden ordenado según el tiempo de ejecución.