Răsfoiți Sursa

Add debounce docs;

bjorn 6 ani în urmă
părinte
comite
b2c4522f4a
3 a modificat fișierele cu 24 adăugiri și 0 ștergeri
  1. 12 0
      doc/README.md
  2. 6 0
      rx.lua
  3. 6 0
      src/operators/debounce.lua

+ 12 - 0
doc/README.md

@@ -33,6 +33,7 @@ RxLua
   - [concat](#concatsources)
   - [contains](#containsvalue)
   - [count](#countpredicate)
+  - [debounce](#debouncetime-scheduler)
   - [defaultIfEmpty](#defaultifemptyvalues)
   - [delay](#delaytime-scheduler)
   - [distinct](#distinct)
@@ -395,6 +396,17 @@ Returns an Observable that produces a single value representing the number of va
 
 ---
 
+#### `:debounce(time, scheduler)`
+
+Returns a new throttled Observable that waits to produce values until a timeout has expired, at which point it produces the latest value from the source Observable.  Whenever the source Observable produces a value, the timeout is reset.
+
+| Name | Type | Default | Description |
+|------|------|---------|-------------|
+| `time` | number or function |  | An amount in milliseconds to wait before producing the last value. |
+| `scheduler` | Scheduler |  | The scheduler to run the Observable on. |
+
+---
+
 #### `:defaultIfEmpty(values)`
 
 Returns a new Observable that produces a default set of items if the source Observable produces no values.

+ 6 - 0
rx.lua

@@ -635,6 +635,12 @@ function Observable:count(predicate)
   end)
 end
 
+--- Returns a new throttled Observable that waits to produce values until a timeout has expired, at
+-- which point it produces the latest value from the source Observable.  Whenever the source
+-- Observable produces a value, the timeout is reset.
+-- @arg {number|function} time - An amount in milliseconds to wait before producing the last value.
+-- @arg {Scheduler} scheduler - The scheduler to run the Observable on.
+-- @returns {Observable}
 function Observable:debounce(time, scheduler)
   time = time or 0
 

+ 6 - 0
src/operators/debounce.lua

@@ -2,6 +2,12 @@ local Observable = require 'observable'
 local Subscription = require 'subscription'
 local util = require 'util'
 
+--- Returns a new throttled Observable that waits to produce values until a timeout has expired, at
+-- which point it produces the latest value from the source Observable.  Whenever the source
+-- Observable produces a value, the timeout is reset.
+-- @arg {number|function} time - An amount in milliseconds to wait before producing the last value.
+-- @arg {Scheduler} scheduler - The scheduler to run the Observable on.
+-- @returns {Observable}
 function Observable:debounce(time, scheduler)
   time = time or 0