Carlos Cifuentes
Referencia AngularJS → Angular

$q en Angular moderno

$q ya no hace falta. Usa promesas nativas con async/await, u operadores RxJS cuando combinas llamadas HTTP.

Antes · AngularJS
$q.all([UserService.get(id), OrderService.list(id)])
  .then(function (results) {
    vm.user = results[0];
    vm.orders = results[1];
  });
Después · Angular
forkJoin({
  user: this.userApi.get(id),
  orders: this.orderApi.list(id),
}).subscribe(({ user, orders }) => {
  this.user.set(user);
  this.orders.set(orders);
});

Qué cambia

  • $q.all pasa a ser forkJoin (observables) o Promise.all (promesas).
  • $q.defer casi nunca hace falta; devuelve el observable o la promesa que ya tienes.
  • firstValueFrom convierte un observable en promesa cuando async/await se lee mejor.

Consejo de migración. Las promesas nativas no disparan un digest en el lado AngularJS de una app híbrida. Mantén $q en el código legacy hasta migrar esa pantalla.

Relacionado

¿Planeas una migración o una plataforma de microfrontends?

En una llamada de 20 minutos me cuentas tu situación y te digo cómo la abordaría. Si todavía no vale la pena, también te lo digo.

Escríbeme por LinkedIn