Оборачивает асинхронную функцию и гарантирует, что все повторные вызовы, во время ожидания асинхронной функции, не будут приводить к повторному вызову самой функции.
Асинхронная функция.
Декорированная асинхронная функция.
let i = 0;const f = promiseSingleton(async () => { await delay(100); return i++;});await Promise.all([f(), f()]); // 0, 0 Copy
let i = 0;const f = promiseSingleton(async () => { await delay(100); return i++;});await Promise.all([f(), f()]); // 0, 0
Оборачивает асинхронную функцию и гарантирует, что все повторные вызовы, во время ожидания асинхронной функции, не будут приводить к повторному вызову самой функции.