首页 > 解决方案 > RxJs 管道作为参数

问题描述

如何将管道作为参数传递,我的意思是这样的:

var mypipes = [
               pipeA(() => {
                alert("a"); 
               })
               ,
              pipeB(() => {
                alert("b"); 
               })
             ];

of(arg1, arg2, arg3).pipe(mypipes).subscribe();

我收到了这个错误:提供不匹配的签名“(来源:Observable):Observable”

标签: angulartypescriptrxjs

解决方案


您可以使用 justpipe(...operators)但您必须定义数组的确切长度,以便pipe()知道要使用什么覆盖:

const operators: [OperatorFunction<number, number>, OperatorFunction<number, number>] = [
  tap(v => console.log(v)),
  tap(v => console.log(v)),
];

of(1, 2).pipe(...operators).subscribe((v) => console.log(v));

或者你也可以使用[any, any]

现场演示:https ://stackblitz.com/edit/rxjs-s9efsr?devtoolsheight=60


推荐阅读