Ayer, un entrevistador me hizo esta pregunta: "¿Cómo le das prioridad a una promesa en JS/NodeJS?". Pensé que podrías usar algo como esperar o prometer.resolve(), pero dijo que eso no es dar prioridad. ¿Alguien puede explicar?
Entonces, una forma posible de hacer esto es usando setImmediate y process.nextTick()
https://jinoantony.com/blog/setimmediate-vs-process-nexttick-in-nodejs/
setImmediate() y process.nextTick() son dos funciones que nos permiten controlar el orden de ejecución de nuestro código en el bucle de eventos. Ambas funciones programan nuestros controladores de devolución de llamada en la cola de eventos. Pero se ejecutan en diferentes fases del bucle de eventos.
puede hacer el encadenamiento de promesas de esta manera, para asegurarse de que las promesas independientes se ejecuten en el orden dado una por una:
function later(delay) { return new Promise(function(resolve) { setTimeout(resolve(delay), delay); }); } //Promise 1: let p1 = later(100) //Promise 2: let p2 = later(200) //Promise 2: let p3 = later(300) p1.then(delay => (console.log(delay))).then(p2.then(delay => console.log(delay)).then(p3.then(delay => console.log(delay)))); //console: //100 //200 //300Tal vez a lo que se refería era a que en un grupo de promesas, la prioridad podría ser resolver únicamente el primero en ese grupo, lo que podría hacer usando Promise.race ( https://developer.mozilla.org/en-US /docs/Web/JavaScript/Reference/Global_Objects/Promise/race )