После этого stackBlitz я попытался испустить серию из N чисел, задерживая каждое излучение со временем задержки, которое является функцией самого числа.Вот код
var subscription = Observable.from(Array.apply(null, {length:N}).map(Number.call, Number))
.pipe(map((iteration) => {
return timer(iteration)
.pipe(map(()=>iteration))
}))
.pipe(concatAll())
.subscribe((mappedIteration)=>{
console.log(Number(mappedIteration)); // prints 0, 1, 2 ...
})
Переменная mappedIteration
имеет тип Observable <{}>.Мои вопросы:
1) почему приведение Number(mappedIteration)
работает с типом Observable <{}> и успешно печатает числа 0,1,2,
?
2) почему, задайте поведение в1), mappedIteration
не относится к типу number
, как это происходит в примере со стеком ?
3), существует ли более простой способ «сопоставить» источник значенийв Observable произвольного типа (например, в этом случае, по таймеру)?