Promise.all a dostep kolejki

Promise.all a dostep kolejki
goku21
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 91
0

Hej.

mam sobie liste z urlami do zaladowania ale owe urle sa tez nazwami obiektow ktore chce zrobic, jak sobie z tym poradzic?
Chce zrobic cos takiego:

Kopiuj
let names = [name1, name2, name3, ...];
let obj = {};
const promises = names.map(NAME => request(address + NAME))
Promise.all(promises).then((data) => {
obj[NAME] = data[i];
//    })


Powyzszy kod demonstruje co chce napisac, wiem ze jest bez sensu. Chodzi o to ze w promise all dostaje dane ktore nie moge zidentyfikowac do ktorej nazwy naleza. Nie wiem w jaki sposob one sa ladowane.
Natomiast do obj chcialbym dorzucic wszystkie zaladowane dane w takiej samej kolejnosci jak lecialy po wartosci "NAME".

SZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 616
0

No ale w data masz ta samą kolejność

Maciej Cąderek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1264
0

Chodzi o to ze w promise all dostaje dane ktore nie moge zidentyfikowac do ktorej nazwy naleza. Nie wiem w jaki sposob one sa ladowane.

Kolejność w tablicy wyników jest taka sama jak w tablucy wejściowej

owe urle sa tez nazwami obiektow ktore chce zrobic

Błąd - nie wiąż tak danych z ich źródłem

goku21
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 91
0

Czyli co moge zrobic zwyklym forem:

Kopiuj
Promise.all(promises).then((data) => {
//obj[NAME] = data[i];
for(let i=0; i < arr.length; i++)
{
obj[arr[i]] = data[i]
}
//    })

to mi sie jakos nie zgadzalo:>
Nie tyle urle sa nazwami w obiektach tylko te koncowki url`a. Dlatego w requescie daje request(address + name) address wyglada zawsze tak samo a nazwa ladnie pasuje z danymi, ktore pod ta nazwa sie kryja.

Maciej Cąderek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1264
0

Jak Ci się nie zgadzało to masz gdzieś indziej błąd, przykład: https://codepen.io/caderek/pen/bvoQLL?editors=0012

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.