Padrões de repetição para operações baseadas em promessas
As promessas fornecem uma maneira conveniente de lidar com operações assíncronas em JavaScript. No entanto, às vezes é necessário repetir as operações várias vezes ou até que uma condição específica seja atendida.
1. Tentando novamente até que a promessa seja resolvida
Para repetir continuamente uma operação até que ela seja resolvida, use um atraso entre novas tentativas e um número máximo de tentativas. Isso pode ser conseguido usando um loop for e encadeamento .catch():
for (var i = 0; i 2. Tentando novamente até que a condição seja atendida
Para tentar novamente uma operação até que uma condição seja atendida no resultado, use uma cadeia .then() para verificar a condição e uma cadeia .catch() para lidar com falhas:
for (var i = 0; i 3. Padrão de nova tentativa dinâmica com uso eficiente de memória
Para um mecanismo de nova tentativa dinâmico com tentativas ilimitadas e um atraso especificado, use a abordagem de cadeia .catch():
var p = Promise.reject();
while (true) {
p = p.catch(attempt).catch(rejectDelay);
// Break out of the loop if the condition is met.
if (conditionMet) break;
}
Nota:
- A abordagem em cadeia .catch() para novas tentativas tem limitações em relação ao número máximo de tentativas e ao consumo de memória.
- Para cenários de repetição complexos, é recomendado usar soluções recursivas ou bibliotecas de repetição específicas.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3