annotations-design-patterns
    Preparing search index...

    Function Timeout

    • Limita el tiempo de un método asíncrono: si no resuelve en ms milisegundos, la promesa devuelta rechaza con Error. El método original sigue ejecutándose en segundo plano (JavaScript no permite cancelarlo), pero su resultado se descarta.

      Parameters

      • ms: number

      Returns <This extends object, Args extends unknown[], Return>(
          target: (this: This, ...args: Args) => Promise<Return>,
          context: ClassMethodDecoratorContext<
              This,
              (this: This, ...args: Args) => Promise<Return>,
          >,
      ) => (this: This, ...args: Args) => Promise<Return>

      class Api {
      @Timeout(5000)
      async fetchUser(id: string): Promise<User> { ... }
      }