simple-pure-utils
Version:
Funciones puras para manipulación de objetos, arreglos, promesas y observables
29 lines (28 loc) • 1.51 kB
TypeScript
/**True si la promesa se resuelve síncronamente */
export declare function isSyncPromise(x: PromiseLike<any>): boolean;
interface SyncPromiseResult<T> {
value?: T;
error?: any;
status: "resolved" | "error" | "pending";
}
/**Devuelve un objeto con el valor de la promesa si es síncrona, si no, devuelve un objeto indicando que no se pudo obtener su valor*/
export declare function syncPromiseValue<T>(x: PromiseLike<T>): SyncPromiseResult<T>;
/**Una clase de una promesa */
interface PromiseClass {
new (executor: (resolve: (value: any) => any) => any): PromiseLike<any>;
}
/**Devuelve true si una implementación de Promise soporta resolución síncrona */
export declare function isSyncPromiseType(promiseClass: PromiseClass): boolean;
/**
* Devuelve una promesa que internamente almacena su valor una vez que fue resuelta, de tal manera que al resolverse de nuevo se resuleve de forma síncrona.
* Esto mejora el rendimiento bastante el rendimiento ya que se puede verificar de forma síncrona si la promesa ya esta resuelta (no se ocupa un estatus intermedio de "cargando")
* @param x Una promesa
*/
export declare function toSyncPromise<T>(x: PromiseLike<T>): PromiseLike<T>;
/**Crea una nueva promesa y devuelve por separado la promesa y las funciones que resuelven y rechazan a la promesa */
export declare function splitPromise<T>(): {
promise: PromiseLike<T>;
resolve: (value?: T | PromiseLike<T> | undefined) => void;
reject: (reason?: any) => void;
};
export {};