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
31 lines
783 B
TypeScript
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);
|
|
}
|
|
}
|