Buckets:
| import { Observable } from '../Observable'; | |
| import { SchedulerLike } from '../types'; | |
| export function scheduleArray<T>(input: ArrayLike<T>, scheduler: SchedulerLike) { | |
| return new Observable<T>((subscriber) => { | |
| // The current array index. | |
| let i = 0; | |
| // Start iterating over the array like on a schedule. | |
| return scheduler.schedule(function () { | |
| if (i === input.length) { | |
| // If we have hit the end of the array like in the | |
| // previous job, we can complete. | |
| subscriber.complete(); | |
| } else { | |
| // Otherwise let's next the value at the current index, | |
| // then increment our index. | |
| subscriber.next(input[i++]); | |
| // If the last emission didn't cause us to close the subscriber | |
| // (via take or some side effect), reschedule the job and we'll | |
| // make another pass. | |
| if (!subscriber.closed) { | |
| this.schedule(); | |
| } | |
| } | |
| }); | |
| }); | |
| } | |
Xet Storage Details
- Size:
- 949 Bytes
- Xet hash:
- 6d86194e87e8a83f0b6505e39c15340aba5e0599ecf76a0ec9971ab525b1a580
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.