• Оборачивает асинхронную функцию и гарантирует, что все повторные вызовы, во время ожидания асинхронной функции, не будут приводить к повторному вызову самой функции.

    Type Parameters

    • R = void

    Parameters

    • func: () => Promise<R>

      Асинхронная функция.

    Returns () => Promise<R>

    Декорированная асинхронная функция.

    let i = 0;
    const f = promiseSingleton(async () => {
    await delay(100);
    return i++;
    });
    await Promise.all([f(), f()]); // 0, 0
MMNEPVFCICPMFPCPTTAAATR