170 похожих чатов

let delay = 3000; const promises =

items.map(async item => {
return await new Promise(resolve => setTimeout(resolve, delay)).then(async () =>
await fetch(...);
})

let results = await Promise.all(promises);

Почему не работает такая конструкция?
Херачит по 5 запросов в секунду все равно
(код со стекоферфлоу, не мой)

10 ответов

10 просмотров

Ты ещё скажи, что это для друга просто

Потому что тут синхронно проходится цикл по элементам массива и для каждого элемента синхронна сразу создаётся по промису. Потом ты получаешь от мапа массив промисов, запущенных почти одновременно. Если нужна последовательная запись, тебе нужен либо нормальный цикл, либо собирать цепочку промисов в reduce

Алекс- Автор вопроса

там там же пробежуточный промис с setInterval есть промис в промисе

Алекс
там там же пробежуточный промис с setInterval есть...

setTimeout(foo, 5000) setTimeout(foo, 5000) setTimeout(foo, 5000) setTimeout(foo, 5000) setTimeout(foo, 5000) В таком коде foo сработает последовательно за 25 сек или сразу 5 раз за 5 сек?

о господи

Алекс- Автор вопроса

let delay = 3000; const promises = items.map(async item => { return await new Promise(...) let results = await Promise.all(promises); Тоже самое, что let delay = 3000; const promises = []; for (const item of items) { promises.push( new Promise(...) ) }

Алекс- Автор вопроса
Алекс
да, я понял уже )

Я раньше начал писать это сообщение :D

Лучше спроси в @js_noobs_ru

Похожие вопросы

Обсуждают сегодня

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Заметил в ghci 9.4.8: > :t (<*>) @((->)_) (<*>) @((->)_) :: (w -> (a -> b)) -> (w -> a) -> w -> b Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, ил...
Михаил
13
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Any electron dev here?
Sayanth Tezro
12
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Кто-нибудь знает почему SPM клонирует репо целиком? Некоторые репы просто огромные, как та же swift-syntax которая нужна для использования макросов. Сначала подумал, что это...
iMike
6
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Привет. Я верно понимаю, что в определении класса Монад m — зафиксирован (к тому же поскольку это моноид в категории эндофункторов). Т.е. используя байнд я не могу перемещать...
Arseny
5
Карта сайта