Как переписать на debounce вместо setTimeout?
Нужно наверное чтобы debounce возвращал промис
https://lodash.com/docs/4.17.10#debounce
Поведение должно быть аналогично этому https://codesandbox.io/s/wy7z7q5zx5 с интервалом 300 mc
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
const asyncValidation = memoize( async value => {
await sleep(500);
try {
…..
} catch (err) {
…..
}
});
Если я правильно понял, что такое debounce:
const debounce = (fn, ms) => {
let dfn = (...args) => {
let rest = +dfn.next - Date.now();
dfn.next = (dfn.next ? dfn.next : Date.now()) + ms;
setTimeout(() => fn(...args), rest > 0 ? rest + ms : ms);
}
return dfn;
}
let fn = debounce(
i => console.log(i, Date.now()),
200
);
for (let i = 1; i <= 30; ++i) {
setTimeout(() => fn(i))
}
console.log(30, 'calls queued');
То попробую угадать что Вам нужно от sleep:
const debounce = (fn, ms) => {
let dfn = (...args) => {
let rest = +dfn.next - Date.now();
dfn.next = (dfn.next ? dfn.next : Date.now()) + ms;
return new Promise(ok =>
setTimeout(
() => ok(fn(...args)),
rest > 0 ? rest + ms : ms
));
}
return dfn;
}
const getSleep = ms => debounce(
() => Promise.resolve(),
ms
);
const sleep = getSleep(200);
(async() => {
let start = Date.now();
await sleep();
await sleep();
await sleep();
await Promise.all([sleep(), sleep(), sleep()]);
console.log(`wake up after ${Date.now() - start}ms`); // 1200ms = 200 * 6
})()
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем приветРаботаю над проектом(Фронт js, бэк - Django) На стороне клиента получаю массив, содержащий определенные айди
Ребят, вопрос очень странно такой задавать, но я негде не нашел никакой информации по поводу этого
У меня есть компонент, в который через props приходит целое число (каждый раз разное)Вопрос, как создать несколько блоков у компоненте в зависимости...