File size: 1,732 Bytes
bc20498 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
import { AsapAction } from './AsapAction';
import { AsapScheduler } from './AsapScheduler';
/**
*
* Asap Scheduler
*
* <span class="informal">Perform task as fast as it can be performed asynchronously</span>
*
* `asap` scheduler behaves the same as {@link asyncScheduler} scheduler when you use it to delay task
* in time. If however you set delay to `0`, `asap` will wait for current synchronously executing
* code to end and then it will try to execute given task as fast as possible.
*
* `asap` scheduler will do its best to minimize time between end of currently executing code
* and start of scheduled task. This makes it best candidate for performing so called "deferring".
* Traditionally this was achieved by calling `setTimeout(deferredTask, 0)`, but that technique involves
* some (although minimal) unwanted delay.
*
* Note that using `asap` scheduler does not necessarily mean that your task will be first to process
* after currently executing code. In particular, if some task was also scheduled with `asap` before,
* that task will execute first. That being said, if you need to schedule task asynchronously, but
* as soon as possible, `asap` scheduler is your best bet.
*
* ## Example
* Compare async and asap scheduler<
* ```ts
* import { asapScheduler, asyncScheduler } from 'rxjs';
*
* asyncScheduler.schedule(() => console.log('async')); // scheduling 'async' first...
* asapScheduler.schedule(() => console.log('asap'));
*
* // Logs:
* // "asap"
* // "async"
* // ... but 'asap' goes first!
* ```
*/
export const asapScheduler = new AsapScheduler(AsapAction);
/**
* @deprecated Renamed to {@link asapScheduler}. Will be removed in v8.
*/
export const asap = asapScheduler;
|