«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Каковы различные шаблоны повторов для операций на основе обещаний в JavaScript?

Каковы различные шаблоны повторов для операций на основе обещаний в JavaScript?

Опубликовано 10 ноября 2024 г.
Просматривать:947

What are the Different Retry Patterns for Promise-Based Operations in JavaScript?

Шаблоны повторов для операций на основе обещаний

Промисы предоставляют удобный способ обработки асинхронных операций в JavaScript. Однако иногда необходимо повторять операции несколько раз или до тех пор, пока не будет выполнено определенное условие.

1. Повторная попытка до тех пор, пока обещание не будет выполнено

Чтобы непрерывно повторять операцию до ее разрешения, используйте задержку между повторными попытками и максимальное количество повторных попыток. Этого можно добиться с помощью цикла for и цепочки .catch():

for (var i = 0; i 

2. Повторная попытка до тех пор, пока условие не будет выполнено

Чтобы повторять операцию до тех пор, пока в результате не будет выполнено условие, используйте цепочку .then() для проверки условия и цепочку .catch() для обработки ошибок:

for (var i = 0; i 

3. Шаблон динамического повтора с эффективным использованием памяти

Для механизма динамического повтора с неограниченным количеством повторов и указанной задержкой используйте подход цепочки .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;
}

Примечание:

  • Цепочечный подход .catch() для повторных попыток имеет ограничения относительно максимального количества попыток и потребления памяти.
  • Для сложных сценариев повторных попыток рекомендуется использовать рекурсивные решения или специальные библиотеки повторных попыток.
Заявление о выпуске Эта статья перепечатана по адресу: 1729587495. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3