source: trip-planner-front/node_modules/rxjs/src/internal/scheduler/queue.ts@ 8d391a1

Last change on this file since 8d391a1 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 2.0 KB
Line 
1import { QueueAction } from './QueueAction';
2import { QueueScheduler } from './QueueScheduler';
3
4/**
5 *
6 * Queue Scheduler
7 *
8 * <span class="informal">Put every next task on a queue, instead of executing it immediately</span>
9 *
10 * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.
11 *
12 * When used without delay, it schedules given task synchronously - executes it right when
13 * it is scheduled. However when called recursively, that is when inside the scheduled task,
14 * another task is scheduled with queue scheduler, instead of executing immediately as well,
15 * that task will be put on a queue and wait for current one to finish.
16 *
17 * This means that when you execute task with `queue` scheduler, you are sure it will end
18 * before any other task scheduled with that scheduler will start.
19 *
20 * ## Examples
21 * Schedule recursively first, then do something
22 * ```ts
23 * import { queueScheduler } from 'rxjs';
24 *
25 * queueScheduler.schedule(() => {
26 * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue
27 *
28 * console.log('first');
29 * });
30 *
31 * // Logs:
32 * // "first"
33 * // "second"
34 * ```
35 *
36 * Reschedule itself recursively
37 * ```ts
38 * import { queueScheduler } from 'rxjs';
39 *
40 * queueScheduler.schedule(function(state) {
41 * if (state !== 0) {
42 * console.log('before', state);
43 * this.schedule(state - 1); // `this` references currently executing Action,
44 * // which we reschedule with new state
45 * console.log('after', state);
46 * }
47 * }, 0, 3);
48 *
49 * // In scheduler that runs recursively, you would expect:
50 * // "before", 3
51 * // "before", 2
52 * // "before", 1
53 * // "after", 1
54 * // "after", 2
55 * // "after", 3
56 *
57 * // But with queue it logs:
58 * // "before", 3
59 * // "after", 3
60 * // "before", 2
61 * // "after", 2
62 * // "before", 1
63 * // "after", 1
64 * ```
65 */
66export const queueScheduler = new QueueScheduler(QueueAction);
67
68/**
69 * @deprecated renamed. Use {@link queueScheduler}
70 */
71export const queue = queueScheduler;
Note: See TracBrowser for help on using the repository browser.