从订阅中返回值

时间:2018-03-26 12:10:55

标签: angular rxjs observable subscription

有了这段代码,我想从这个订阅中返回一个字符串值:

this.langPipe.transform(text).subscribe((res: any) => {
        return res['value']
    });

变换langPipe函数返回Observable<string>

事实上,这当然没有运行,我不知道用地图做谁。 在我的模板上,我只想在div的title属性中显示它。

这可能是重复的,我看到类似的线索,但我真的不明白它是如何工作的。

如果有人有想法,那将会有很多帮助。提前谢谢!

1 个答案:

答案 0 :(得分:2)

订阅用于触发操作,并在发出值或可观察完成/引发错误时进行回调。例如,可以根据发出的值在组件类中设置变量。但订阅不应该返回一个值。

如果您需要返回此值,那么您需要对发出值进行转换,那么您可以使用map运算符代替subscribe

但结果将是Observable<string>,因此如果您在其他地方使用此结果,则可以使用async管道进行管道处理。

因此,您可以使用{{ input | yourPipeReturningString }}

代替{{ input yourPipeReturningObservble | async }}

基本上,async Angular管道只会订阅底层的observable并返回发出的值。