У меня есть проблема, когда пользователь очень быстро нажимает на две кнопки, которые обновляют в базе данных Firebase тот же объект и то же свойство.проблема в том, что только один запрос сохраняет, а остальные переопределяют.Это происходит в том случае, если пользователь нажал на обе кнопки в одну и ту же секунду.
У меня вопрос, есть ли способ выполнить потоки кликов с минимальной задержкой между ними.Я хочу, чтобы между каждым исполнением было минимум 2 секунды.спасибо за помощь.
Я хочу записать все клики, но выполнить функциональность с минимальной задержкой между ними.
(function($){
$(function($, undefined){
var count = 0;
const click$ = Rx.Observable.fromEvent($('.btn'), 'click').share();
click$
.map((ev)=> {
count ++;
return count;
})
.bufferTime(1000)
.filter(buffer => buffer.length > 0)
.do((buffer) => console.log(`new buffer: ${buffer}`))
.map((buffer)=> {
return Rx.Observable.fromArray(buffer).concatMap(streams => Rx.Observable.of(streams).delay(2000))
})
.flatMap((s)=> s)
.subscribe((a)=> {
console.log(`${a} : ${new Date()}`)
});
});
})(jQuery);
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/4.1.0/rx.all.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<button class="btn">Click</button>
</body>
</html>
Проблема в том, что я нажимаю несколько раз больше секунды.потоки из другого буфера будут выполняться одновременно.как я могу решить :( пример:
новый буфер: 1,2,3,4
новый буфер: 5,6,7,8,9,10
1: сб 12 мая 2018 17:22:29 GMT-0600 (MDT)
новый буфер: 11,12,13
5: сб 12 мая 2018 17:22:30 GMT-0600 (MDT)
2: сб. 12 мая 2018 17:22:31 GMT-0600 (MDT)
11: сб. 12 мая 2018 17:22:31 GMT-0600 (MDT)
2 и 11 произошли в одно и то же время. Как я могу это решить: (