Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数组的可观测值转换为可观测值数组_Javascript_Rxjs_Rxjs6 - Fatal编程技术网

Javascript 将数组的可观测值转换为可观测值数组

Javascript 将数组的可观测值转换为可观测值数组,javascript,rxjs,rxjs6,Javascript,Rxjs,Rxjs6,我试图从阵列的可观测值转换: of([1,2,3]); 进入一系列可观测数据中: [第(1)项、第(2)项、第(3)项] 但是我没有主意了。我尝试了以下方法: of([1,2,3]).pipe(映射((元素:number[])=>elements.map(元素=>of(元素))) 但这给了我类似的东西,有一个我不想要的外部观察 ([属于(1)、属于(2)、属于(3)]的 由于我想将结果与其他数组连接起来,所以我不方便只订阅外部可观测值来获得数组…我想我需要一个concatAll的相反运算

我试图从阵列的可观测值转换:

of([1,2,3]);
进入一系列可观测数据中:

[第(1)项、第(2)项、第(3)项]
但是我没有主意了。我尝试了以下方法:

of([1,2,3]).pipe(映射((元素:number[])=>elements.map(元素=>of(元素)))
但这给了我类似的东西,有一个我不想要的外部观察

([属于(1)、属于(2)、属于(3)]的 由于我想将结果与其他数组连接起来,所以我不方便只订阅外部可观测值来获得数组…我想我需要一个
concatAll
的相反运算符。有什么想法吗?

如果你知道可观测值总是完全同步的 (但请记住,这并不是真正可以在运行时检查的东西) 可以这样做:

const extractValue=(source$:Observable):Observable[]=>{
let结果:可观察[];
来源$
.烟斗(
map((arr)=>arr.map((value)=>of(value)),
采取(1)
)
.订阅(_结果)=>{
结果=_结果;
});
返回结果;
};
否则,必须使用异步函数:

const extractValue=(
来源:$:可观测
):承诺=>{
返回源$
.烟斗(
map((arr)=>arr.map((value)=>of(value)),
采取(1)
)
.toPromise();
};
RxJS#来自
from([1,2,3,4,5]).subscribe(console.log)//1 2 4 5
或者作为一个可执行的操作符

([1,2,3,4,5])管道的
(
concatMap(v=>from(v))
).subscribe(console.log)//1 2 3 4 5
结合你的转变

([1,2,3,4,5])管道的
(
映射((元素:number[])=>
elements.map(element=>of(element))
),
concatMap(x=>from(x))
)
合二为一

([1,2,3,4,5])管道的
(
concatMap((元素:number[])=>
from(elements.map(element=>of(element)))
)
)

这是否需要与任何可观察的对象(包括异步对象)一起工作?OP确实指定了(公认的非标准)要求他希望观察对象数组本身在范围内,而不是发出数组的观察对象。谢谢你的回答。不幸的是,观察对象确实是异步的,使用异步函数会导致我对代码进行重大重写。原因是([of(1)])对我来说不起作用是因为我的系统需要一个观察值数组,该数组稍后会传递给forkJoin。感谢您提供的额外细节。在这种情况下,我想知道您问题的特殊性是否隐藏了潜在的解决方案-您能否更新该问题以显示该观察值数组是如何传递给
forkJoin