> For the complete documentation index, see [llms.txt](https://www.rxjs.es/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.rxjs.es/api/schedulers/asap.md).

# asap

### Firma

`const asap: any;`

Asap Scheduler

## Descripción

Ejecuta una tarea lo más rápido que se pueda ejecutar asíncronamente.

El Planificador `asap` se comporta de la misma manera que el Planificador [async](https://github.com/puntotech/rxjs-docu/blob/master/api/schedulers/async/README.md) cuando se utiliza para retrasar una tarea en el tiempo. Sin embargo, si a delay se le proporciona un valor de `0`, `asap` espera a que termine la ejecución síncrona del código, y solo entonces intenta ejecutar la tarea dada lo más rápidamente posible.

El Planificador `asap` trata de minimizar el intervalo tiempo desde la finalización de la ejecución del código hasta el comienzo de la tarea planificada. Esto lo convierte en el mejor candidato para llevar a cabo cualquier postergamiento. Tradicionalmente, este comportamiento se lograba mediante `setTimeout(tareaPostergada, 0)`, aunque el uso de dicha técnica provoca un retardo (aunque mínimo) no deseado.

Se debe tener en cuenta que el utilizar el Planificador `asap` no implica necesariamente que la tarea planificada sea la primera en ser procesada tras la finalización de la ejecución actual de código. Si otra tarea se planifica anteriormente con `asap`, dicha tarea será ejecutada primero. Dicho esto, si se necesita planificar una tarea de forma asíncrona, pero lo antes posible, el Planificador `asap` es la mejor opción.

## Ejemplos

### Ejemplo de la documentación oficial

Comparación de los Planificadores async y asap

```javascript
import { asapScheduler, asyncScheduler } from "rxjs";

asyncScheduler.schedule(() => console.log("async")); // planificando 'async' primero...
asapScheduler.schedule(() => console.log("asap"));

/* Salida:
     "asap"
     "async"
     ... !Pero 'asap' aparece antes!
*/
```
