Инструменты пользователя

Инструменты сайта


nodejs:steams:promise.all_restrict

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
nodejs:steams:promise.all_restrict [2022/05/15 12:07]
werwolf
nodejs:steams:promise.all_restrict [2023/01/12 12:18] (текущий)
Строка 24: Строка 24:
  
  
-===== ОТВЕТЫ ===== 
  
-=== Ответ 1 ===+ 
 +====es6-promise-pool====
  
 Обратите внимание,​ что ''​Promise.all()''​ не запускает promises, чтобы начать свою работу,​ создавая само обещание. Обратите внимание,​ что ''​Promise.all()''​ не запускает promises, чтобы начать свою работу,​ создавая само обещание.
Строка 62: Строка 62:
 </​code>​ </​code>​
  
-=== Ответ 2 ===+====p-limit====
  
 **С-Концевой** **С-Концевой**
Строка 108: Строка 108:
 Результат журнала консоли - это массив данных ответа ваших разрешенных обещаний. Результат журнала консоли - это массив данных ответа ваших разрешенных обещаний.
  
-=== Ответ 3 ===+====bluebird====
  
 [[http://​bluebirdjs.com/​docs/​api/​promise.map.html|Bluebird Promise.map]] может использовать параметр параллелизма,​ чтобы контролировать,​ сколько обещаний должно выполняться параллельно. Иногда это проще, чем ''​.all''​ потому что вам не нужно создавать массив обещаний. [[http://​bluebirdjs.com/​docs/​api/​promise.map.html|Bluebird Promise.map]] может использовать параметр параллелизма,​ чтобы контролировать,​ сколько обещаний должно выполняться параллельно. Иногда это проще, чем ''​.all''​ потому что вам не нужно создавать массив обещаний.
Строка 128: Строка 128:
 </​code>​ </​code>​
  
-=== Ответ 4 ===+====http.Agent({maxSockets:​ 5})====
  
 Вместо использования обещаний для ограничения http-запросов используйте встроенный узел [[https://​nodejs.org/​api/​http.html#​http_agent_maxsockets%23http_agent_maxsockets|http.Agent.maxSockets]]. Это устраняет необходимость использования библиотеки или написания собственного кода пула и дает дополнительное преимущество,​ позволяющее лучше контролировать то, что вы ограничиваете. Вместо использования обещаний для ограничения http-запросов используйте встроенный узел [[https://​nodejs.org/​api/​http.html#​http_agent_maxsockets%23http_agent_maxsockets|http.Agent.maxSockets]]. Это устраняет необходимость использования библиотеки или написания собственного кода пула и дает дополнительное преимущество,​ позволяющее лучше контролировать то, что вы ограничиваете.
Строка 145: Строка 145:
 Если вы делаете несколько запросов к одному и тому же источнику,​ вам также может быть полезно установить для ''​keepAlive''​ значение true (дополнительную информацию см. В документации выше). Если вы делаете несколько запросов к одному и тому же источнику,​ вам также может быть полезно установить для ''​keepAlive''​ значение true (дополнительную информацию см. В документации выше).
  
-=== Ответ 5 ===+====iterator====
  
 Если вы знаете,​ как работают итераторы и как они используются,​ вам не понадобится дополнительная библиотека,​ так как создать собственный параллелизм очень просто. Позвольте мне продемонстрировать:​ Если вы знаете,​ как работают итераторы и как они используются,​ вам не понадобится дополнительная библиотека,​ так как создать собственный параллелизм очень просто. Позвольте мне продемонстрировать:​
Строка 168: Строка 168:
 </​code>​ </​code>​
  
-=== Ответ 6 ===+====p-limit MongoDB====
  
 Вот основной пример для потоковой передачи и "​p-limit"​. Это потоковое чтение HTTP потока в Монго БД. Вот основной пример для потоковой передачи и "​p-limit"​. Это потоковое чтение HTTP потока в Монго БД.
Строка 214: Строка 214:
 </​code>​ </​code>​
  
-=== Ответ 7 ===+===екурсия====
  
 Это может быть решено с помощью рекурсии. Это может быть решено с помощью рекурсии.
Строка 258: Строка 258:
 </​code>​ </​code>​
  
-=== Ответ 8 ===+====batch-promises====
  
 Поэтому я попытался заставить некоторые показанные примеры работать для моего кода, но так как это было только для сценария импорта,​ а не для производственного кода, использование [[https://​www.npmjs.com/​package/​batch-promises|пакетных обещаний]] пакета npm, несомненно,​ было для меня самым простым путем Поэтому я попытался заставить некоторые показанные примеры работать для моего кода, но так как это было только для сценария импорта,​ а не для производственного кода, использование [[https://​www.npmjs.com/​package/​batch-promises|пакетных обещаний]] пакета npm, несомненно,​ было для меня самым простым путем
Строка 296: Строка 296:
 </​code>​ </​code>​
  
-=== Ответ 9 ===+====Promise.race====
  
 Это то, что я сделал с помощью ''​Promise.race'',​ внутри моего кода здесь Это то, что я сделал с помощью ''​Promise.race'',​ внутри моего кода здесь
Строка 317: Строка 317:
 Если вы хотите увидеть пример:​ [[https://​jsfiddle.net/​thecodermarcelo/​av2tp83o/​5|https://​jsfiddle.net/​thecodermarcelo/​av2tp83o/​5/​]] Если вы хотите увидеть пример:​ [[https://​jsfiddle.net/​thecodermarcelo/​av2tp83o/​5|https://​jsfiddle.net/​thecodermarcelo/​av2tp83o/​5/​]]
  
-=== Ответ ​10 ===+====рекурсия с внешними библиотеками====
  
 Рекурсия - это ответ, если вы не хотите использовать внешние библиотеки Рекурсия - это ответ, если вы не хотите использовать внешние библиотеки
Строка 339: Строка 339:
 </​code>​ </​code>​
  
-=== Ответ 11 ===+====async-pool====
  
 Я предлагаю библиотеку async-pool: [[https://​github.com/​rxaviers/​async-pool|https://​github.com/​rxaviers/​async-pool]] Я предлагаю библиотеку async-pool: [[https://​github.com/​rxaviers/​async-pool|https://​github.com/​rxaviers/​async-pool]]
Строка 349: Строка 349:
 > npm установить крошечный-асинхронный пул > npm установить крошечный-асинхронный пул
  
-=== Ответ 12 ===+====async/​await====
  
 Это становится относительно тривиально с async/​await,​ в зависимости от того, что вы хотите,​ это хорошо переносится на карту с задержкой или forEach, вот реализация карты. Это становится относительно тривиально с async/​await,​ в зависимости от того, что вы хотите,​ это хорошо переносится на карту с задержкой или forEach, вот реализация карты.
nodejs/steams/promise.all_restrict.1652605639.txt.gz · Последние изменения: 2023/01/12 12:17 (внешнее изменение)