RXJS可观察的方法.pipe()和.subscribe()之间的差异
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RXJS可观察的方法.pipe()和.subscribe()之间的差异相关的知识,希望对你有一定的参考价值。
我最近注意到我可以在.pipe()
中返回一个值,但不能在.subscribe()
中返回。
这两种方法有什么区别?
例如,如果我有这个功能,让我们称之为“存款”,如果我这样做,它应该返回账户余额:
deposit(account, amount){
return this.http.get('url')
.subscribe(res => {
return res;
}
}
如果我这样做,它会返回一个observable:
deposit(account, amount){
return this.http.get('url')
.pipe(
map(res => {
return res;
});
);
}
它按预期返回帐户余额。
所以为什么?
答案
pipe
方法用于链接可观察的运算符,而subscribe
用于激活可观察和监听发出的值。
添加了pipe
方法以允许webpack从最终的javascript包中删除未使用的运算符。它使构建较小的文件更容易。
例如,如果我有这个功能,让我们称之为'存款',它应该返回帐户余额,如果我这样做:
这不是它的回报。它返回调用Subscription
时创建的Subscribe
对象。
它按预期返回帐户余额。
这不是它的回报。它返回一个使用Observable
运算符的map
。示例中的map运算符不执行任何操作。
以上是关于RXJS可观察的方法.pipe()和.subscribe()之间的差异的主要内容,如果未能解决你的问题,请参考以下文章