从订阅返回一个值
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 发出的值。
有了这个代码,我想 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 发出的值。