@ux-aspects/ux-aspects
Version:
Open source user interface framework for building modern, responsive, mobile big data applications
16 lines • 2.36 kB
JavaScript
import { Observable } from 'rxjs';
/**
* This is a simple RxJS operator to allow us to avoid the
* "expression has changed after it was checked issue"
* by making the subscription asynchronous. We could just use a
* delay operator but this uses a timeout which is significantly
* slower than using requestAnimationFrame.
*/
export const tick = () => (source) => new Observable((subscriber) => {
source.subscribe({
next(value) { requestAnimationFrame(() => subscriber.next(value)); },
error(err) { subscriber.error(err); },
complete() { subscriber.complete(); },
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGljay5vcGVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21tb24vb3BlcmF0b3JzL3RpY2sub3BlcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsR0FBTSxFQUFFLENBQUMsQ0FBQyxNQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO0lBQ3JGLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDYixJQUFJLENBQUMsS0FBUSxJQUFJLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsS0FBSyxDQUFDLEdBQVksSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QyxRQUFRLEtBQUssVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUN4QyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUaGlzIGlzIGEgc2ltcGxlIFJ4SlMgb3BlcmF0b3IgdG8gYWxsb3cgdXMgdG8gYXZvaWQgdGhlXG4gKiBcImV4cHJlc3Npb24gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgd2FzIGNoZWNrZWQgaXNzdWVcIlxuICogYnkgbWFraW5nIHRoZSBzdWJzY3JpcHRpb24gYXN5bmNocm9ub3VzLiBXZSBjb3VsZCBqdXN0IHVzZSBhXG4gKiBkZWxheSBvcGVyYXRvciBidXQgdGhpcyB1c2VzIGEgdGltZW91dCB3aGljaCBpcyBzaWduaWZpY2FudGx5XG4gKiBzbG93ZXIgdGhhbiB1c2luZyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUuXG4gKi9cbmV4cG9ydCBjb25zdCB0aWNrID0gPFQ+KCkgPT4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4gbmV3IE9ic2VydmFibGU8VD4oKHN1YnNjcmliZXIpID0+IHtcbiAgICBzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dCh2YWx1ZTogVCkgeyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gc3Vic2NyaWJlci5uZXh0KHZhbHVlKSk7IH0sXG4gICAgICAgIGVycm9yKGVycjogdW5rbm93bikgeyBzdWJzY3JpYmVyLmVycm9yKGVycik7IH0sXG4gICAgICAgIGNvbXBsZXRlKCkgeyBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7IH0sXG4gICAgfSk7XG59KTsiXX0=