@meld-ts/core
    Preparing search index...

    Interface PendingHandle

    createPending 返回的实例接口

    每个实例持有独立的 scope 注册表,实例间互不干扰。

    interface PendingHandle {
        pendingFn<T, Args extends unknown[]>(
            scope: string | ((...args: Args) => string),
            fn: PendingCallbackFn<T, Args>,
        ): (...args: Args) => Promise<Awaited<T>>;
        pending<F extends AnyFunction>(
            scope: string | ((...args: Parameters<F>) => string),
            fn: F,
        ): (...args: Parameters<F>) => Promise<Awaited<ReturnType<F>>>;
        clear(): void;
    }
    Index

    Methods

    • 感知 pending 状态的 inflight 去重。

      fn 的第一个参数为 PendingFnParams,包含 scope 和 getPendingCount, 允许根据 pending 状态做自定义处理(如短路检查、日志等)。 返回的函数剥掉 PendingFnParams,只暴露业务参数。

      Type Parameters

      • T
      • Args extends unknown[]

      Parameters

      • scope: string | ((...args: Args) => string)

        静态 scope 字符串,或基于参数动态生成 scope 的函数

      • fn: PendingCallbackFn<T, Args>

        接收 PendingFnParams 的回调函数

      Returns (...args: Args) => Promise<Awaited<T>>

      只保留业务参数的包装函数

    • 基于 scope 的 inflight 去重。

      同一 scope 下并发调用只执行一次 fn,所有 callers 共享同一个 Promise 结果。 执行完毕后 scope 释放,下一次调用开启新的执行周期。

      Type Parameters

      Parameters

      • scope: string | ((...args: Parameters<F>) => string)

        静态 scope 字符串,或基于参数动态生成 scope 的函数

      • fn: F

        要包装的函数(同步或异步)

      Returns (...args: Parameters<F>) => Promise<Awaited<ReturnType<F>>>

      包装后的去重函数

    • 清除此实例的 scope 注册表,允许已注册的 scope 重新注册。

      用于测试场景(afterEach)或 HMR dispose 钩子中重置状态。

      Returns void