Repository navigation
Promise API - #468
Promise API#468
Conversation
|
|
||
| ````smart header="`Promise.all(iterable)` allows non-promise \"regular\" values in `iterable`" | ||
| Normally, `Promise.all(...)` accepts an iterable (in most cases an array) of promises. But if any of those objects is not a promise, it's passed to the resulting array "as is". | ||
| ````smart header="`Promise.all(iterable)` permite valores "normais" (não promessas) no `iterable`" |
There was a problem hiding this comment.
As aspas internas do header não estão escapadas. O original usava \"regular\", e o resto do repositório também escapa assim (header="Não exitem regras \"você deve\" "). Sem o escape, o atributo termina em permite valores e o título da caixa smart aparece cortado ou quebrado.
| ````smart header="`Promise.all(iterable)` permite valores "normais" (não promessas) no `iterable`" | |
| ````smart header="`Promise.all(iterable)` permite valores \"normais\" (não promessas) no `iterable`" |
| let requests = urls.map(url => fetch(url)); | ||
|
|
||
| // Promise.all waits until all jobs are resolved | ||
| // Promise.all espera até que todas os trabalhos sejam resolvidos |
There was a problem hiding this comment.
Erro de concordância: todas os trabalhos deveria ser todos os trabalhos.
| // Promise.all espera até que todas os trabalhos sejam resolvidos | |
| // Promise.all espera até que todos os trabalhos sejam resolvidos |
| ## Promise.any | ||
|
|
||
| Similar to `Promise.race`, but waits only for the first fulfilled promise and gets its result. If all of the given promises are rejected, then the returned promise is rejected with [`AggregateError`](mdn:js/AggregateError) - a special error object that stores all promise errors in its `errors` property. | ||
| Parecido com o `Promise.race`, mas espera apenas pela primeira promessa resolvida e pega o resultado dela. Se todas as promessas dadas forem rejeitadas, então a promessa retornada é rejeitada com [`AggregateError`](mdn:js/AggregateError) - um objeto de erro especial que guarda todos os erros das promessas na sua propriedade `errors`. |
There was a problem hiding this comment.
Aqui fulfilled virou "resolvida", a mesma palavra usada para resolved e para Promise.resolve ("cria uma promessa resolvida"). Só que o estado literal é "fulfilled", e uma promessa resolvida com outra promessa ainda pendente não está fulfilled. Isso também acontece nas linhas 240 e 317 (value (se resolvida)). Sugestão: usar um termo próprio, como "realizada" ou "cumprida", ou deixar fulfilled entre parênteses.
| ``` | ||
|
|
||
| So for each promise we get its status and `value/error`. | ||
| Então, para cada promessa, obtemos o status e o `value`/`error` dela. |
There was a problem hiding this comment.
value/error era um único trecho de código. Dividido em `value`/`error`, ele passa a impressão de que existe uma propriedade error. Na verdade a propriedade é reason (como na lista acima). Sugestão: `value`/`reason` ou manter "o valor/erro".
| ## Promise.all | ||
|
|
||
| Let's say we want many promises to execute in parallel and wait until all of them are ready. | ||
| Digamos que queremos que várias promessas sejam executadas em paralelo e esperar até que todas estejam prontas. |
There was a problem hiding this comment.
Falta paralelismo na frase: "queremos que ... sejam executadas ... e esperar" junta uma oração no subjuntivo com um infinitivo. Sugestão: "Digamos que queremos executar várias promessas em paralelo e esperar até que todas estejam prontas."
| # API do Promise | ||
|
|
||
| There are 6 static methods in the `Promise` class. We'll quickly cover their use cases here. | ||
| Existem 6 métodos estáticos na classe `Promise`. Vamos cobrir rapidamente os seus casos de uso aqui. |
There was a problem hiding this comment.
"cobrir" (de cover) é um anglicismo. O CLAUDE.md pede "Natural translation over literal". "Abordar" soa mais natural. Isso se repete nas linhas 99, 259 e 261.
| fetch('/style.css'), | ||
| fetch('/data.json') | ||
| ]).then(render); // render method needs results of all fetches | ||
| ]).then(render); // o método render precisa dos resultados de todos os fetches |
There was a problem hiding this comment.
O CLAUDE.md diz: "avoid using foreign words". fetches é um substantivo em inglês no plural. Sugestão: "precisa dos resultados de todas as requisições".
| - `value` (se resolvida) ou `reason` (se rejeitada). | ||
| 3. `Promise.race(promises)` -- espera que a primeira promessa seja estabelecida, e o resultado/erro dela se torna o resultado final. | ||
| 4. `Promise.any(promises)` (método adicionado recentemente) -- espera que a primeira promessa seja resolvida, e o resultado dela se torna o resultado final. Se todas as promessas dadas forem rejeitadas, [`AggregateError`](mdn:js/AggregateError) se torna o erro do `Promise.any`. | ||
| 5. `Promise.resolve(value)` -- faz uma promessa resolvida com o valor dado. |
There was a problem hiding this comment.
Inconsistência: aqui está "faz uma promessa resolvida" (e "faz uma promessa rejeitada" na linha 321), mas antes o texto usa "cria uma promessa resolvida/rejeitada". "cria" fica mais natural e mantém a consistência.
| @@ -1,40 +1,40 @@ | |||
| # Promise API | |||
| # API do Promise | |||
There was a problem hiding this comment.
O título mistura Promise (masculino, nome da classe) com o corpo do texto, que traduz promise como "promessa". A linha 99 repete a forma "API do Promise". Uma opção mais consistente é "API de Promise" / "API de promessas".
| Repare que a ordem dos membros do array resultante é a mesma das promessas de origem. Mesmo que a primeira promessa leve o maior tempo para ser resolvida, ela continua sendo a primeira no array de resultados. | ||
|
|
||
| A common trick is to map an array of job data into an array of promises, and then wrap that into `Promise.all`. | ||
| Um truque comum é mapear um array de dados de trabalho em um array de promessas, e então envolver isso em um `Promise.all`. |
There was a problem hiding this comment.
"dados de trabalho" é uma tradução literal de job data e fica estranha. Sugestão: "um array de dados de tarefas" ou "um array de dados".
|
Obrigado, @gabifs! Apliquei tudo: escapei as aspas do header, corrigi concordância, usei "cumprida" exclusivamente pra "fulfilled" (distinto de "resolvida"), corrigi |
Tradução do artigo "Promise API" para o português.
Conforme comentado na #1.