自定义管道必须是异步的

时间:2018-03-20 15:53:48

标签: angular asynchronous angular-pipe

我有这个管道已经在整个应用程序中使用过,并且不会使用某些异步逻辑进行更新。因此,PipeTransform接口需要在我的组件中使用同步transform方法。

对我有用的唯一选择是在我的所有视图中添加| async管道。不是最好的,因为我的自定义管道总是需要下游async管道。

有没有办法创建PipeTransform方法可以处理异步代码的自定义transform实现?

我正试图让以下内容起作用,到目前为止没有成功:

transform(value, args) {
    const source$ = of("abc");
    const response = await source$.pipe(first()).toPromise();
    return response;
  }

1 个答案:

答案 0 :(得分:0)

根据@wannadream的建议,我可以添加纯粹的:假的'财产到我的管道装饰。

在我的情况下不合适,因为整个应用程序中会有200多个管道。不纯意味着:

  • 每次使用时都会创建一个不纯的管道实例。
  • 不纯的烟斗'每个可能的事件都会调用transform()方法。

我将myPipe重命名为myPipe$并按以下方式使用它:

[data] = 'aValue | myPipe$ | async"