You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/06-advanced-functions/09-call-apply-decorators/03-debounce/solution.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,4 +9,4 @@ function debounce(func, ms) {
9
9
10
10
```
11
11
12
-
Uma chamada de`debounce` retorna um encapsulador. Quando chamada, ela agenda a chamada original da função depois de certos`ms` e cancela o tempo de espera (timeout) anterior.
12
+
Uma chamada à`debounce` retorna um embrulhador. Quando chamado, este agenda a chamada da função original depois de dados`ms` e cancela o tempo de espera anterior.
Copy file name to clipboardExpand all lines: 1-js/06-advanced-functions/09-call-apply-decorators/03-debounce/task.md
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,50 +2,50 @@ importance: 5
2
2
3
3
---
4
4
5
-
# O decorador Debounce
5
+
# Decorador de Redução
6
6
7
-
O resultado do decorador `debounce(f, ms)` é um encapsulador que suspende chamadas de`f` até haver`ms` milissegundos de inactividade (nenhuma chamada, "período de espera"), depois invoca `f` uma vez com os últimos argumentos.
7
+
O resultado do decorador `debounce(f, ms)` é um embrulhador que suspende as chamadas à`f` até existir`ms` milissegundos de inatividade (nenhuma chamada, "período de arrefecimento"), depois invoca `f` uma vez com os argumentos mais recentes.
8
8
9
-
Por outras palavras, `debounce` é como uma secretária que aceita "chamadas telefónicas", e espera até existirem`ms` milissegundos de inatividade. E, somente então transfere a informação da última chamada para "o chefe" (chama a `f` atual).
9
+
Por outras palavras, `debounce` é como uma secretária que aceita "chamadas telefónicas", e espera até existir`ms` milissegundos de silêncio. E apenas depois transfere a informação da chamada mais recente ao "chefe" (chama a verdadeira `f`).
10
10
11
-
Por exemplo, tinhamos uma função `f` e a substituimos por `f = debounce(f, 1000)`.
11
+
Por exemplo, tínhamos uma função `f` e a substituímos por `f = debounce(f, 1000)`.
12
12
13
-
Então se a função encapsulada for chamada aos 0ms, 200ms, e 500ms, e depois não houver chamadas, a `f`atual será somente chamada uma vez, aos 1500ms. Ou seja, depois do período de espera de 1000ms após a última chamada.
13
+
Então se a função embrulhada for chamada aos 0ms, 200ms, e 500ms, e depois não existirem chamadas, a `f`verdadeira apenas será chamada uma vez, aos 1500ms. Isto é: depois do período de arrefecimento de 1000ms da última chamada.
14
14
15
15

16
16
17
-
...E receberá os argumentos da última chamada, outras chamadas são ignoradas.
17
+
...E obterá os argumentos da última chamada, outras chamadas são ignoradas.
18
18
19
-
Aqui está o código para isso (que usa o decorador debounce da [biblioteca Lodash](https://lodash.com/docs/4.17.15#debounce)):
19
+
Eis o código para isto (que usa o decorador de redução da [biblioteca Lodash](https://lodash.com/docs/4.17.15#debounce)):
20
20
21
21
```js
22
22
let f =_.debounce(alert, 1000);
23
23
24
24
f("a");
25
25
setTimeout( () =>f("b"), 200);
26
26
setTimeout( () =>f("c"), 500);
27
-
// a função de debounce espera 1000ms após a última chamada e depois executa: alert("c")
27
+
// a função de redução espera 1000ms após a última chamada e depois executa: alert("c")
28
28
```
29
29
30
-
Agora um exemplo prático. Vamos dizer, que o usuário digita alguma coisa, e gostaríamos de fazer um pedido ao servidor quando a entrada tiver terminado.
30
+
Agora um exemplo prático. Digamos, que o utilizador digita algo, e gostaríamos de enviar uma requisição a servidor quando a entrada for terminada.
31
31
32
-
Não adianta enviar um pedido por cada caractere digitado. Ao invés disso gostariamos de esperar, e então processar todo o resultado.
32
+
Não faz sentido enviar uma requisição por cada carácter digitado. Em vez disto, gostaríamos de esperar e depois processar todo o resultado.
33
33
34
-
Num navegador, nós podemos configurar um gerenciador de eventos -- uma função que é chamada em todas as alterações no campo de entrada. Normalmente, um gerenciador de eventos é chamado com frequência, a cada tecla pressionada. Porém, se nós fizermos o `debounce`dele por 1000ms, então ele será chamando apenas uma vez, depois de 1000ms após a última entrada.
34
+
Num navegador da Web, podemos configurar um manipulador de evento -- uma função que é chamada sobre toda mudança dum campo de entrada. Normalmente, um manipulador de evento é chamado com muita frequência, para toda tecla digitada. Mas se usássemos `debounce`nesta por 1000ms, então apenas será chamada uma vez, após 1000ms depois da última entrada.
35
35
36
36
```online
37
37
38
-
Neste exemplo online, o gerenciador coloca o resultado na caixa abaixo, experimente:
38
+
Neste exemplo ao vivo, o manipulador coloca o resultado numa caixa abaixo, experimenta:
39
39
40
40
[iframe border=1 src="debounce" height=200]
41
41
42
-
Você vê? A segunda entrada chama a função de debounce, assim o seu conteúdo será processado após 1000ms depois da última entrada.
42
+
Vês? A segunda entrada chama a função reduzida, então o seu conteúdo é processado após 1000ms depois da última entrada.
43
43
```
44
44
45
-
Portanto, `debounce` é uma excelente maneira de processar uma sequência de eventos: seja ela uma sequência de teclas pressionadas, movimentos do rato ou alguma outra coisa.
45
+
Portanto, `debounce` é uma excelente maneira de processar uma sequência de eventos: seja uma sequência de pressões de tecla, movimentos de rato ou qualquer outra coisa.
46
46
47
-
Ela espera o tempo dado depois da última chamada, e depois executa a sua tarefa, que pode processar o resultado.
47
+
Esta espera o dado tempo depois da última chamada, e depois executa a sua função, que pode processar o resultado.
48
48
49
49
A tarefa é implementar o decorador `debounce`.
50
50
51
-
Dica: são apenas uma poucas linhas se você estiver a pensar nisso :)
51
+
Sugestão: são apenas algumas linhas, se pensarmos bem :)
0 commit comments