Update task.md
This commit is contained in:
parent
53f055c925
commit
858b733ce0
1 changed files with 3 additions and 3 deletions
|
@ -6,6 +6,8 @@ importance: 5
|
|||
|
||||
The result of `debounce(f, ms)` decorator is a wrapper that suspends calls to `f` until there's `ms` milliseconds of inactivity (no calls, "cooldown period"), then invokes `f` once with the latest arguments.
|
||||
|
||||
In other words, `debounce` is like a secretary that accepts "phone calls", and waits until there's `ms` milliseconds of being quiet. And only then it transfers the latest call information to "the boss" (calls the actual `f`).
|
||||
|
||||
For instance, we had a function `f` and replaced it with `f = debounce(f, 1000)`.
|
||||
|
||||
Then if the wrapped function is called at 0ms, 200ms and 500ms, and then there are no calls, then the actual `f` will be only called once, at 1500ms. That is: after the cooldown period of 1000ms from the last call.
|
||||
|
@ -25,7 +27,6 @@ setTimeout( () => f("c"), 500);
|
|||
// debounced function waits 1000ms after the last call and then runs: alert("c")
|
||||
```
|
||||
|
||||
|
||||
Now a practical example. Let's say, the user types something, and we'd like to send a request to the server when the input is finished.
|
||||
|
||||
There's no point in sending the request for every character typed. Instead we'd like to wait, and then process the whole result.
|
||||
|
@ -43,9 +44,8 @@ See? The second input calls the debounced function, so its content is processed
|
|||
|
||||
So, `debounce` is a great way to process a sequence of events: be it a sequence of key presses, mouse movements or something else.
|
||||
|
||||
|
||||
It waits the given time after the last call, and then runs its function, that can process the result.
|
||||
|
||||
The task is to implement `debounce` decorator.
|
||||
|
||||
Hint: that's just a few lines if you think about it :)
|
||||
Hint: that's just a few lines if you think about it :)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue