Files
suwayomi-material-you-webui/src/lib/ControlledPromise.ts
schroda 06b2bca340 Add prioritization to image requests (#671)
In the reader the preloaded page requests were triggered before the actual page got rendered and thus, the image request of the rendered page had to wait for all the preloaded images to finish
2024-03-24 19:08:36 +01:00

31 lines
783 B
TypeScript

/*
* Copyright (C) Contributors to the Suwayomi project
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
export class ControlledPromise<T = void> {
private orgResolve!: (value: T | PromiseLike<T>) => void;
private orgReject!: (reason?: any) => void;
public readonly promise: Promise<T>;
constructor() {
this.promise = new Promise<T>((resolve, reject) => {
this.orgResolve = resolve;
this.orgReject = reject;
});
}
resolve(value: T): void {
this.orgResolve(value);
}
reject(reason?: any): void {
this.orgReject(reason);
}
}