в ваш уютный чатик, потому что помню, что angular тесно на нем завязан), помогите понять что и как)
У меня есть один стрим, который возвращает массив,
мне этот массив нужно разбить на элементы и дальше с каждым из них выполнить Promise-код, как это сделать?
На каком-то своем псевдокоде я представляю это так:
arrayStream$.pipe(createElementStream().pipe(doPromiseWithEveryElement()))
Нужно, чтобы arrayStream обязательно ждал, пока не выполнятся промисы один за другим для каждого элемента.
Поидее так:сначала все данные переводим с map в массив, потом from переводит массив в массив observable, потом concatMap.
в итоге сделал через flatMap(), concatMap(). С from никак не получилось завести, разные варианты пробовал. Видимо, просто пока не умею готовить)
Если про from, он уже потерян) Я пытался просто pipe(from, concatMap), пытался map(from), map(v=>from(v)), map(v=>from(v).pipe(concatMap))
const { interval , of,from} = Rx; const { take, concatMap , switchMap,map,delay,tap} = RxOperators; from([1,2,3,4,5]).pipe( tap(data => console.log(new Date(), data)), concatMap(data => of(data).pipe(delay(1000),tap(data => console.log('\n',new Date(),data)))) ).subscribe(data => console.log("rsult: " + data)) https://rxviz.com/ см логи в девтулс, оно?
Там скорее from(number[][]) исходный источник стрима)
Обсуждают сегодня