有了这段代码,我想从这个订阅中返回一个字符串值:
this.langPipe.transform(text).subscribe((res: any) => {
return res['value']
});
变换langPipe函数返回Observable<string>
。
事实上,这当然没有运行,我不知道用地图做谁。 在我的模板上,我只想在div的title属性中显示它。
这可能是重复的,我看到类似的线索,但我真的不明白它是如何工作的。
如果有人有想法,那将会有很多帮助。提前谢谢!
答案 0 :(得分:2)
订阅用于触发操作,并在发出值或可观察完成/引发错误时进行回调。例如,可以根据发出的值在组件类中设置变量。但订阅不应该返回一个值。
如果您需要返回此值,那么您需要对发出值进行转换,那么您可以使用map
运算符代替subscribe
。
但结果将是Observable<string>
,因此如果您在其他地方使用此结果,则可以使用async
管道进行管道处理。
因此,您可以使用{{ input | yourPipeReturningString }}
{{ input yourPipeReturningObservble | async }}
基本上,async
Angular管道只会订阅底层的observable并返回发出的值。