/** * O intuito desta classe é organizar a finalização de várias * promessas executando determinada ação (callback) com o resultado. */ export default class PromiseSync { _promises: Array>; _callBack: PromiseSyncCallback; /** * @param {PromiseSyncCallback} callback - Será chamado sempre que todas as promises se resolverem. */ constructor(callBack: PromiseSyncCallback); /** * Adiciona na lista de promises pendentes. Isso faz com que criemos uma nova espera. * * @param {Promise} promise - Entrará na lista aguardada. */ add(promise: Promise): void; } /** * Representa o callback de um sincronizador `PromiseSync`. */ export interface PromiseSyncCallback { /** * Será chamado sempre que todas as promessas adicionadas finalizarem. * * @param result - A lista com o resultado de todas as promises aguardadas. */ resolve(result: PromiseSettledResult>[]): void; }