从订阅返回一个值

Returning a value from a subscription

有了这个代码,我想 return 来自这个订阅的字符串值:

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

变换langPipe函数return一个Observable<string>.

事实是,这当然不是运行而且我不明白是谁用地图做的。 在我的模板上,我只想在 div.

的标题属性中显示它

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

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

这里的订阅是为了触发一个动作,并在发出值或当 observable 完成/引发错误时提供回调。例如,可以根据发出的值在组件 class 中设置一个变量。但是订阅不应该 return 一个值。

如果您需要对这个值进行 returned,因此您需要对发出的值进行 转换 ,那么您可以改用 map 运算符subscribe.

不过,结果将是一个 Observable<string>,因此如果您在别处使用此结果,您可以使用 async 管道将其管道化。

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

而不是 {{ input | yourPipeReturningString }}

基本上,async Angular 管道将只订阅底层的可观察对象和 return 发出的值。